-
Notifications
You must be signed in to change notification settings - Fork 2k
/
Dockerfile.build
35 lines (27 loc) · 1.46 KB
/
Dockerfile.build
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
# This Dockerfile is used to build Focalboard for Linux. It builds all the parts inside the image
# and the last stage just holds the package which is then copied back to the host.
#
# docker buildx build -f Dockerfile.build --no-cache --platform linux/amd64 -t focalboard-build:dirty --output out .
# docker buildx build -f Dockerfile.build --no-cache --platform linux/arm64 -t focalboard-build:dirty --output out .
#
# Afterwards the packages can be found in the ./out folder.
# build frontend
FROM node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 AS frontend
WORKDIR /webapp
COPY webapp .
### 'CPPFLAGS="-DPNG_ARM_NEON_OPT=0"' Needed To Avoid Bug Described in: https://github.com/imagemin/optipng-bin/issues/118#issuecomment-1019838562
### Can be Removed when Ticket will be Closed
RUN CPPFLAGS="-DPNG_ARM_NEON_OPT=0" npm install --no-optional && \
npm run pack
# build backend and package
FROM golang:1.18.3@sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be40540381838d75eebef AS backend
COPY . .
COPY --from=frontend /webapp/pack webapp/pack
ARG TARGETARCH
# RUN apt-get update && apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev -y
RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-linux arch=${TARGETARCH}
RUN make server-linux-package-docker arch=${TARGETARCH}
# Copy package back to host
FROM scratch AS dist
ARG TARGETARCH
COPY --from=backend /go/dist/focalboard-server-linux-${TARGETARCH}.tar.gz .