diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5406cdf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM golang:1.22-alpine AS builder +WORKDIR /build + +COPY go.mod go.sum ./ +RUN go mod download && go mod verify + +COPY cmd/backend cmd/backend +COPY pkg pkg +COPY internal internal + +RUN GOEXPERIMENT=boringcrypto go build -ldflags "-s -w" -o ./app ./cmd/backend +RUN chmod +x ./app + +FROM alpine:3.21.2 AS production +WORKDIR /backend + +COPY --from=builder /build/app . +COPY cmd/backend/config.yaml . +COPY cmd/backend/jwt_signing_key . + +EXPOSE 8080 + +CMD ["./app", "-c", "config.yaml"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 8dfad49..cfbd7ea 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: postgres: - image: postgres:16.4 + image: postgres:16.4-alpine shm_size: 256mb command: | postgres diff --git a/dockerfile b/dockerfile deleted file mode 100644 index daf5c37..0000000 --- a/dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM golang:1.22 - -WORKDIR /usr/src/app - -COPY go.mod go.sum ./ -RUN go mod download && go mod verify - -EXPOSE 8080 - -COPY . . -RUN go build -v -o ./app . -RUN chmod +x ./app - -CMD ["./app", "-c", "./misc/config.yaml"] \ No newline at end of file