Merge pull request #520 from NuSkooler/feature/multiarch_docker
Feature/multiarch docker
This commit is contained in:
commit
6aa0c8679f
|
@ -11,14 +11,14 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
|
@ -31,5 +31,5 @@ jobs:
|
||||||
with:
|
with:
|
||||||
tags: enigmabbs/enigma-bbs:latest
|
tags: enigmabbs/enigma-bbs:latest
|
||||||
file: docker/Dockerfile
|
file: docker/Dockerfile
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||||
push: true
|
push: true
|
|
@ -1,19 +1,25 @@
|
||||||
FROM node:18-buster-slim
|
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:20-bookworm-slim
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ARG BUILDPLATFORM
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETBRANCH
|
||||||
|
|
||||||
LABEL maintainer="dave@force9.org"
|
LABEL maintainer="dave@force9.org"
|
||||||
|
|
||||||
ENV NVM_DIR /root/.nvm
|
ENV NVM_DIR /root/.nvm
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
COPY . /enigma-bbs
|
|
||||||
|
|
||||||
# Do some installing! (and alot of cleaning up) keeping it in one step for less docker layers
|
|
||||||
# - if you need to debug i recommend to break the steps with individual RUNs)
|
# Just copy the package.json so it only needs to build once
|
||||||
|
COPY package.json /enigma-bbs/
|
||||||
|
|
||||||
|
# Install APT and NPM packages
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y \
|
&& apt-get install -y \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
build-essential \
|
build-essential \
|
||||||
python \
|
|
||||||
python3 \
|
python3 \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
lrzsz \
|
lrzsz \
|
||||||
|
@ -22,9 +28,21 @@ RUN apt-get update \
|
||||||
unrar-free \
|
unrar-free \
|
||||||
p7zip-full \
|
p7zip-full \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
|
&& npm set progress=false && npm config set depth 0 \
|
||||||
&& npm install -g npm@latest \
|
&& npm install -g npm@latest \
|
||||||
&& npm install -g pm2 \
|
&& npm install -g pm2 \
|
||||||
&& cd /enigma-bbs && npm install \
|
&& cd /enigma-bbs && npm install
|
||||||
|
|
||||||
|
|
||||||
|
# Do this after npm install to avoid cache-miss on every code change
|
||||||
|
COPY . /enigma-bbs
|
||||||
|
|
||||||
|
# Then run post source copy steps that have to happen every time
|
||||||
|
RUN dos2unix /enigma-bbs/docker/bin/docker-entrypoint.sh \
|
||||||
|
&& apt-get remove dos2unix -y \
|
||||||
|
&& chmod +x /enigma-bbs/docker/bin/docker-entrypoint.sh \
|
||||||
|
&& cp -f /enigma-bbs/docker/bin/sexyz /usr/local/bin \
|
||||||
|
&& cd /enigma-bbs \
|
||||||
&& pm2 start main.js \
|
&& pm2 start main.js \
|
||||||
&& mkdir -p /enigma-bbs-pre/art \
|
&& mkdir -p /enigma-bbs-pre/art \
|
||||||
&& mkdir /enigma-bbs-pre/mods \
|
&& mkdir /enigma-bbs-pre/mods \
|
||||||
|
@ -32,16 +50,11 @@ RUN apt-get update \
|
||||||
&& cp -rp art/* ../enigma-bbs-pre/art/ \
|
&& cp -rp art/* ../enigma-bbs-pre/art/ \
|
||||||
&& cp -rp mods/* ../enigma-bbs-pre/mods/ \
|
&& cp -rp mods/* ../enigma-bbs-pre/mods/ \
|
||||||
&& cp -rp config/* ../enigma-bbs-pre/config/ \
|
&& cp -rp config/* ../enigma-bbs-pre/config/ \
|
||||||
&& apt-get remove build-essential python python3 libssl-dev git curl -y \
|
&& apt-get remove build-essential python3 libssl-dev git curl -y \
|
||||||
&& apt-get autoremove -y \
|
&& apt-get autoremove -y \
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
||||||
&& apt-get clean
|
&& apt-get clean
|
||||||
|
|
||||||
# sexyz
|
|
||||||
COPY docker/bin/sexyz /usr/local/bin
|
|
||||||
RUN dos2unix /enigma-bbs/docker/bin/docker-entrypoint.sh && apt-get remove dos2unix -y
|
|
||||||
RUN chmod +x /enigma-bbs/docker/bin/docker-entrypoint.sh
|
|
||||||
|
|
||||||
# enigma storage mounts
|
# enigma storage mounts
|
||||||
VOLUME /enigma-bbs/art
|
VOLUME /enigma-bbs/art
|
||||||
VOLUME /enigma-bbs/config
|
VOLUME /enigma-bbs/config
|
||||||
|
|
Loading…
Reference in New Issue