-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
56 lines (39 loc) · 1.16 KB
/
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
FROM golang:1.23.6-alpine as go-builder
WORKDIR /usr/src/app
COPY cmd/ cmd/
COPY config/ config/
COPY img-src/ img-src/
COPY internal/ internal/
COPY Makefile Makefile
COPY go.mod go.mod
COPY go.sum go.sum
COPY pkg/ pkg/
RUN ["apk", "add", "gcc", "git", "make", "musl-dev", "pkgconfig", "vips-dev"]
RUN ["make", "server", "img-out"]
FROM python:3 as python-builder
COPY fa-src/ fa-src/
RUN ["pip", "install", "fonttools[woff]"]
RUN ["make", "-C", "fa-src"]
FROM node:23-alpine as node-builder
RUN ["mkdir", "/build"]
WORKDIR /build
COPY config/ config/
COPY fa-src/ fa-src/
COPY Makefile .
COPY package.json .
COPY package-lock.json .
COPY tsconfig.json .
COPY webpack.config.js .
COPY web-src/ web-src/
RUN ["mkdir", "dist"]
COPY --from=python-builder /fa-src/fa-brands.woff2 fa-src/
COPY --from=python-builder /fa-src/fa-solid.woff2 fa-src/
RUN ["npm", "install", "."]
RUN ["apk", "add", "make"]
RUN ["make", "webapp"]
FROM alpine
COPY --from=go-builder /usr/src/app/server /server
COPY --from=go-builder /usr/src/app/img-out /img-out
COPY --from=node-builder /build/dist /dist
EXPOSE 8080/tcp
ENTRYPOINT ["/server", "-img-out-dir", "img-out", "-webroot-dir", "dist"]