Refactoring
This commit is contained in:
16
deploy/.env.docker
Normal file
16
deploy/.env.docker
Normal file
@@ -0,0 +1,16 @@
|
||||
SERVER_ADDR=:443
|
||||
|
||||
APP_NAME=identity-svc
|
||||
APP_DOMAIN=identity.service.ego.io
|
||||
|
||||
API_DATABASE_URL=postgres://postgres:12345678@db-postgres:5432/egommerce
|
||||
API_CACHE_ADDR=api-cache:6379
|
||||
API_CACHE_USERNAME=default
|
||||
API_CACHE_PASSWORD=12345678
|
||||
API_MONGODB_URL=mongodb://mongodb:12345678@db-mongo:27017
|
||||
|
||||
JWT_ACCESS_TOKEN_SECRET_KEY=SomeFancySecretAndRandomString
|
||||
JWT_ACCESS_TOKEN_EXPIRE_TIME=1 # hours
|
||||
|
||||
JWT_REFRESH_TOKEN_SECRET_KEY=SomeFancySecretAndRandomStringAgain
|
||||
JWT_REFRESH_TOKEN_EXPIRE_TIME=7 # days
|
||||
15
deploy/docker/Dockerfile.builder
Normal file
15
deploy/docker/Dockerfile.builder
Normal file
@@ -0,0 +1,15 @@
|
||||
# Builder
|
||||
FROM golang:alpine
|
||||
|
||||
ARG BIN_OUTPUT=/go/bin
|
||||
ARG GO_SERVER=cmd/server/main.go
|
||||
ARG GO_CHRONOS=cmd/scheduler/main.go
|
||||
ARG GO_MIGRATE=cmd/migrate/main.go
|
||||
|
||||
WORKDIR /go/src/app
|
||||
COPY src/ ./
|
||||
|
||||
RUN export CGO_ENABLED=0 ; export GOOS=linux ; export GOARCH=amd64 && \
|
||||
go build -ldflags="-w -s" -o "$BIN_OUTPUT/server" $GO_SERVER && \
|
||||
go build -ldflags="-w -s" -o "$BIN_OUTPUT/scheduler" $GO_CHRONOS && \
|
||||
go build -ldflags="-w -s" -o "$BIN_OUTPUT/migrate" $GO_MIGRATE
|
||||
33
deploy/docker/Dockerfile.target
Normal file
33
deploy/docker/Dockerfile.target
Normal file
@@ -0,0 +1,33 @@
|
||||
# Builder
|
||||
ARG BUILDER_IMAGE
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
# Destination image - server
|
||||
# FROM gcr.io/distroless/base-debian10
|
||||
FROM alpine:3.22
|
||||
|
||||
ARG SVC_NAME
|
||||
ARG SVC_VER
|
||||
ARG BUILD_TIME
|
||||
|
||||
LABEL dev.egommerce.image.author="Piotr Biernat"
|
||||
LABEL dev.egommerce.image.vendor="Egommerce"
|
||||
LABEL dev.egommerce.image.service=${SVC_NAME}
|
||||
LABEL dev.egommerce.image.version=${SVC_VER}
|
||||
LABEL dev.egommerce.image.build_time=${BUILD_TIME}
|
||||
|
||||
WORKDIR /
|
||||
|
||||
COPY --from=builder /go/bin/server /usr/local/bin/server
|
||||
COPY --from=builder /go/bin/migrate /usr/local/bin/migrate
|
||||
COPY --from=builder /go/bin/scheduler /usr/local/bin/scheduler
|
||||
|
||||
COPY deploy/.env.docker /.env
|
||||
COPY ./bin/* /usr/local/bin/
|
||||
|
||||
RUN chmod 755 /usr/local/bin/entrypoint.sh /usr/local/bin/migrate.sh
|
||||
|
||||
EXPOSE 443
|
||||
|
||||
ENTRYPOINT ["entrypoint.sh"]
|
||||
CMD ["sh", "-c", "/usr/local/bin/server"]
|
||||
@@ -11,7 +11,7 @@ TARGET=${1:-latest}
|
||||
[ ! -d "src/vendor" ] && sh -c "cd src; go mod vendor"
|
||||
|
||||
echo "Building target $IMAGE_PREFIX images..."
|
||||
docker build --rm -t $BUILDER_IMAGE -f Dockerfile.builder .
|
||||
docker build --rm -t $BUILDER_IMAGE -f deploy/docker/Dockerfile.builder .
|
||||
|
||||
if [ $TARGET = "latest" ]
|
||||
then
|
||||
@@ -23,7 +23,7 @@ then
|
||||
--build-arg BUILD_TIME \
|
||||
--rm --cache-from $SERVER_IMAGE:$TARGET \
|
||||
-t $SERVER_IMAGE:$TARGET \
|
||||
-f Dockerfile.target . > /dev/null 2>&1 && echo "Successfully tagged $SERVER_IMAGE:$TARGET"
|
||||
-f deploy/docker/Dockerfile.target . > /dev/null 2>&1 && echo "Successfully tagged $SERVER_IMAGE:$TARGET"
|
||||
else
|
||||
# DEV
|
||||
docker build \
|
||||
@@ -32,7 +32,7 @@ else
|
||||
--build-arg BUILDER_IMAGE=$BUILDER_IMAGE \
|
||||
--build-arg BUILD_TIME \
|
||||
--rm --no-cache -t $SERVER_IMAGE:$TARGET \
|
||||
-f Dockerfile.target . > /dev/null 2>&1 && echo "Successfully tagged $SERVER_IMAGE:$TARGET"
|
||||
-f deploy/docker/Dockerfile.target . > /dev/null 2>&1 && echo "Successfully tagged $SERVER_IMAGE:$TARGET"
|
||||
fi
|
||||
|
||||
echo "Done."
|
||||
Reference in New Issue
Block a user