feat: add Dockerfile and build script for multi-stage Docker builds
This commit is contained in:
6
.dockerignore
Normal file
6
.dockerignore
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
.env
|
||||||
|
.claude
|
||||||
|
.idea
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
build-docker.sh
|
||||||
32
Dockerfile
Normal file
32
Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# ---------- Builder Stage ----------
|
||||||
|
FROM golang:1.24.2 AS builder
|
||||||
|
ARG GIT_AUTH_TOKEN
|
||||||
|
RUN git config --global url."https://${GIT_AUTH_TOKEN}:x-oauth-basic@git.denco.store/".insteadOf "https://git.denco.store/"
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# copy only go.mod and go.sum first
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# now copy the rest of the code
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# build binaries
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/server/main.go \
|
||||||
|
&& CGO_ENABLED=0 GOOS=linux go build -o tasks_server ./cmd/tasks_server/main.go
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ---------- Final Image: Server ----------
|
||||||
|
FROM gcr.io/distroless/static-debian12 AS server
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=builder /app/server .
|
||||||
|
ENTRYPOINT ["./server"]
|
||||||
|
|
||||||
|
|
||||||
|
# ---------- Final Image: Tasks Server ----------
|
||||||
|
FROM gcr.io/distroless/static-debian12 AS tasks_server
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=builder /app/tasks_server .
|
||||||
|
ENTRYPOINT ["./tasks_server"]
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
|
|
||||||
go build -o cmd/server/main cmd/server/main.go
|
|
||||||
go build -o cmd/tasks_server/main cmd/tasks_server/main.go
|
|
||||||
|
|
||||||
docker build -t git.denco.store/fakz9/sipro-marketplaces:latest cmd/server
|
docker build --build-arg GIT_AUTH_TOKEN=6d52710e6960046501f4ab5ab76b6e0c7c8d5a92 -t git.denco.store/fakz9/sipro-marketplaces:latest --target server .
|
||||||
docker build -t git.denco.store/fakz9/sipro-marketplaces-worker:latest cmd/tasks_server
|
docker build --build-arg GIT_AUTH_TOKEN=6d52710e6960046501f4ab5ab76b6e0c7c8d5a92 -t git.denco.store/fakz9/sipro-marketplaces-worker:latest --target tasks_server .
|
||||||
|
|
||||||
docker push git.denco.store/fakz9/sipro-marketplaces:latest
|
docker push git.denco.store/fakz9/sipro-marketplaces:latest
|
||||||
docker push git.denco.store/fakz9/sipro-marketplaces-worker:latest
|
docker push git.denco.store/fakz9/sipro-marketplaces-worker:latest
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
FROM alpine:latest
|
|
||||||
WORKDIR /app
|
|
||||||
COPY main .
|
|
||||||
RUN apk add gcompat
|
|
||||||
CMD ["./main"]
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
FROM alpine:latest
|
|
||||||
WORKDIR /app
|
|
||||||
COPY main .
|
|
||||||
RUN apk add gcompat
|
|
||||||
CMD ["./main"]
|
|
||||||
Reference in New Issue
Block a user