-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
35 lines (29 loc) · 954 Bytes
/
Dockerfile
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
# syntax=docker/dockerfile:1
# Frontend Build
FROM docker.io/library/node:20.13.1-alpine3.18 AS nodebuilder
ARG NUXT_UI_PRO_LICENSE
WORKDIR /app
COPY . ./
RUN rm -rf ./.nuxt/ && \
apk add --no-cache git && \
corepack enable && \
corepack prepare pnpm@latest --activate && \
pnpm install && \
NUXT_UI_PRO_LICENSE=${NUXT_UI_PRO_LICENSE} pnpm generate
# Backend Build
FROM docker.io/library/golang:1.22.3 AS gobuilder
WORKDIR /go/src/github.com/fivenet-app/fivenet/
COPY . ./
RUN apt-get update && \
apt-get install -y git && \
make build-go
# Final Image
FROM docker.io/library/alpine:3.19.1
WORKDIR /app
RUN apk --no-cache add ca-certificates tini tzdata && \
mkdir -p ./.output/public
COPY --from=nodebuilder /app/.output/public ./.output/public
COPY --from=gobuilder /go/src/github.com/fivenet-app/fivenet/fivenet /usr/local/bin
EXPOSE 7070/tcp 8080/tcp 9090/tcp
ENTRYPOINT ["tini", "--", "fivenet"]
CMD ["server"]