You've already forked focalboard
mirror of
https://github.com/mattermost/focalboard.git
synced 2025-10-06 22:17:19 +02:00
[GH-124] Added Docker Arm64 Capability (#1700)
* Added Docker Arm64 Capability
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
CHANGELOG.md
|
CHANGELOG.md
|
||||||
README.md
|
README.md
|
||||||
|
|
||||||
|
node_modules
|
||||||
.github/
|
.github/
|
||||||
mac/
|
mac/
|
||||||
win-wpf/
|
win-wpf/
|
||||||
|
5
Makefile
5
Makefile
@@ -65,6 +65,11 @@ server-linux: setup-go-work ## Build server for Linux.
|
|||||||
$(eval LDFLAGS += -X "github.com/mattermost/focalboard/server/model.Edition=linux")
|
$(eval LDFLAGS += -X "github.com/mattermost/focalboard/server/model.Edition=linux")
|
||||||
cd server; env GOOS=linux GOARCH=amd64 go build -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -o ../bin/linux/focalboard-server ./main
|
cd server; env GOOS=linux GOARCH=amd64 go build -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -o ../bin/linux/focalboard-server ./main
|
||||||
|
|
||||||
|
server-docker: setup-go-work ## Build server for Docker Architectures.
|
||||||
|
mkdir -p bin/docker
|
||||||
|
$(eval LDFLAGS += -X "github.com/mattermost/focalboard/server/model.Edition=linux")
|
||||||
|
cd server; env GOOS=$(os) GOARCH=$(arch) go build -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -o ../bin/docker/focalboard-server ./main
|
||||||
|
|
||||||
server-win: setup-go-work ## Build server for Windows.
|
server-win: setup-go-work ## Build server for Windows.
|
||||||
$(eval LDFLAGS += -X "github.com/mattermost/focalboard/server/model.Edition=win")
|
$(eval LDFLAGS += -X "github.com/mattermost/focalboard/server/model.Edition=win")
|
||||||
cd server; env GOOS=windows GOARCH=amd64 go build -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -o ../bin/win/focalboard-server.exe ./main
|
cd server; env GOOS=windows GOARCH=amd64 go build -ldflags '$(LDFLAGS)' -tags '$(BUILD_TAGS)' -o ../bin/win/focalboard-server.exe ./main
|
||||||
|
@@ -4,7 +4,9 @@ FROM node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db
|
|||||||
WORKDIR /webapp
|
WORKDIR /webapp
|
||||||
ADD webapp/ /webapp
|
ADD webapp/ /webapp
|
||||||
|
|
||||||
RUN npm install --no-optional && \
|
### '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
|
npm run pack
|
||||||
|
|
||||||
### Go build
|
### Go build
|
||||||
@@ -13,7 +15,11 @@ FROM golang:1.18.3@sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be405403818
|
|||||||
WORKDIR /go/src/focalboard
|
WORKDIR /go/src/focalboard
|
||||||
ADD . /go/src/focalboard
|
ADD . /go/src/focalboard
|
||||||
|
|
||||||
RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-linux
|
# Get target architecture
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-docker os=${TARGETOS} arch=${TARGETARCH}
|
||||||
|
|
||||||
## Final image
|
## Final image
|
||||||
FROM debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216
|
FROM debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216
|
||||||
@@ -24,7 +30,7 @@ RUN chown -R nobody:nogroup /opt/focalboard
|
|||||||
WORKDIR /opt/focalboard
|
WORKDIR /opt/focalboard
|
||||||
|
|
||||||
COPY --from=nodebuild --chown=nobody:nogroup /webapp/pack pack/
|
COPY --from=nodebuild --chown=nobody:nogroup /webapp/pack pack/
|
||||||
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/bin/linux/focalboard-server bin/
|
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/bin/docker/focalboard-server bin/
|
||||||
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/LICENSE.txt LICENSE.txt
|
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/LICENSE.txt LICENSE.txt
|
||||||
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/docker/server_config.json config.json
|
COPY --from=gobuild --chown=nobody:nogroup /go/src/focalboard/docker/server_config.json config.json
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
The Dockerfile gives a quick and easy way to pull the latest Focalboard server and deploy it locally. In the example below,
|
The Dockerfile gives a quick and easy way to build the latest Focalboard server and deploy it locally. In the example below,
|
||||||
the Focalboard database and files will be persisted in a named volumed called `fbdata`.
|
the Focalboard database and files will be persisted in a named volumed called `fbdata`.
|
||||||
|
|
||||||
From the Focalboard project root directory:
|
From the Focalboard project root directory:
|
||||||
@@ -14,6 +14,15 @@ docker run -it -v "fbdata:/opt/focalboard/data" -p 80:8000 focalboard
|
|||||||
|
|
||||||
Open a browser to [localhost](http://localhost) to start
|
Open a browser to [localhost](http://localhost) to start
|
||||||
|
|
||||||
|
## Alternative architectures
|
||||||
|
|
||||||
|
From the Focalboard project root directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build -f docker/Dockerfile --platform linux/arm64 -t focalboard .
|
||||||
|
docker run -it -v "fbdata:/opt/focalboard/data" -p 80:8000 focalboard
|
||||||
|
```
|
||||||
|
|
||||||
## Docker-Compose
|
## Docker-Compose
|
||||||
|
|
||||||
Docker-Compose provides the option to automate the build and run step, or even include some of the steps from the [personal server setup](https://www.focalboard.com/download/personal-edition/ubuntu/).
|
Docker-Compose provides the option to automate the build and run step, or even include some of the steps from the [personal server setup](https://www.focalboard.com/download/personal-edition/ubuntu/).
|
||||||
|
Reference in New Issue
Block a user