-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
56 lines (36 loc) · 1.01 KB
/
Dockerfile
File metadata and controls
56 lines (36 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# **Dependencies**
FROM golang:1.26.1 AS deps
WORKDIR /usr/src/app
COPY go.mod go.sum ./
RUN go mod download
RUN go install github.com/swaggo/swag/cmd/swag@latest
# **Build App**
FROM deps AS builder
WORKDIR /usr/src/app
COPY --from=deps /go/pkg /go/pkg
COPY ./internal ./internal
COPY ./cmd ./cmd
COPY ./config ./config
RUN swag init --generalInfo cmd/main.go --output ./swagger
RUN go build -v -o /usr/local/bin/app cmd/main.go
# **Run Compiled App**
FROM builder AS prod
WORKDIR /usr/src/app
COPY certs /certs
COPY migrations ./migrations
COPY --from=builder /usr/local/bin/app /usr/local/bin/app
COPY templates ./templates
COPY internal/world-service/nomad/ftr-server-job.nomad /nomad/templates/ftr-server-job.nomad
EXPOSE 8000
CMD ["app"]
# **Run test for Compiled App**
FROM builder AS test
WORKDIR /usr/src/app
COPY --from=builder /usr/local/bin/app /usr/src/app/app
RUN chmod +x run_tests.sh
CMD ["app"]
# **Image for Dev things**
FROM deps AS dev
WORKDIR /usr/src/app
COPY --from=deps /go/pkg /go/pkg
COPY . .