add docker support
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
# Build binary release
|
||||
FROM golang:1.14.10-alpine3.12 AS builder
|
||||
RUN apk add gcc g++ libc-dev
|
||||
WORKDIR /go/src/github.com/mayswind/lab
|
||||
COPY . .
|
||||
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -a -v -i -trimpath -o lab lab.go
|
||||
|
||||
# Package docker image
|
||||
FROM alpine:3.12.0
|
||||
RUN addgroup -S -g 1000 labapp && adduser -S -G labapp -u 1000 labapp
|
||||
RUN apk --no-cache add su-exec tzdata
|
||||
COPY --from=builder /go/src/github.com/mayswind/lab/lab /usr/local/bin/labapp/lab
|
||||
RUN chmod +x /usr/local/bin/labapp/lab
|
||||
COPY conf /usr/local/bin/labapp/conf
|
||||
COPY public /usr/local/bin/labapp/public
|
||||
WORKDIR /usr/local/bin/labapp
|
||||
COPY docker/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
RUN chmod +x /docker-entrypoint.sh
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mode=$1;
|
||||
version=`grep "const LAB_VERSION" lab.go | awk -F '=' '{print $2}' | tr -d ' ' | tr -d '"'`;
|
||||
|
||||
if [ "$mode" == "--snapshot" ]; then
|
||||
version="SNAPSHOT-"`date "+%Y%m%d"`;
|
||||
fi
|
||||
|
||||
echo "Building docker image...";
|
||||
docker build -t lab:${version} .
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e;
|
||||
export LAB_USER=labapp;
|
||||
export LAB_GROUP=labapp;
|
||||
|
||||
prepare_directories() {
|
||||
local log_path="/var/log/labapp";
|
||||
|
||||
if [ "${LAB_LOG_PATH}" != "" ]; then
|
||||
log_path="${LAB_LOG_PATH}";
|
||||
fi
|
||||
|
||||
if [ ! -d "${log_path}" ]; then
|
||||
mkdir ${log_path};
|
||||
chown ${LAB_USER}:${LAB_GROUP} -R ${log_path};
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_directories;
|
||||
|
||||
conf_path_param="";
|
||||
|
||||
if [ "${LAB_CONF_PATH}" != "" ]; then
|
||||
conf_path_param="--conf-path=${LAB_CONF_PATH}";
|
||||
fi
|
||||
|
||||
exec su-exec ${LAB_USER} /usr/local/bin/labapp/lab server run ${conf_path_param};
|
||||
Reference in New Issue
Block a user