-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.dev
28 lines (26 loc) · 948 Bytes
/
Dockerfile.dev
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
# Builder stage
FROM golang:1.21.4-alpine3.18 AS builder
WORKDIR /app
COPY . .
RUN apk add curl
RUN curl -L https://github.com/golang-migrate/migrate/releases/download/v4.16.2/migrate.linux-amd64.tar.gz | tar xvz
RUN curl -L https://github.com/cosmtrek/air/releases/download/v1.49.0/air_1.49.0_linux_amd64.tar.gz | tar xvz
RUN wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
# Runner stage
FROM alpine:3.18
WORKDIR /app
COPY --from=builder /app/migrate /usr/local/bin/migrate
COPY --from=builder /app/air /usr/local/bin/air
COPY --from=builder /app/go1.21.4.linux-amd64.tar.gz .
COPY app.env .
COPY start-dev.sh .
COPY wait-for.sh .
COPY db/migration ./db/migration
COPY go.mod go.sum ./
RUN rm -rf /usr/local/go \
&& tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz \
&& echo "export PATH=$PATH:/usr/local/go/bin" >> $HOME/.profile \
&& rm go1.21.4.linux-amd64.tar.gz
EXPOSE 8080
CMD [ "air" ]
ENTRYPOINT [ "/app/start-dev.sh" ]