From f17bbe7c5a005ff3f0845a9414979549f7f16598 Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Sun, 15 Oct 2023 20:17:47 +0000 Subject: [PATCH 1/4] Updated docker support --- .github/workflows/docker.yml | 8 ++++---- docker/Dockerfile | 33 +++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 165fc522..630786ae 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -11,14 +11,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v2 @@ -31,5 +31,5 @@ jobs: with: tags: enigmabbs/enigma-bbs:latest file: docker/Dockerfile - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index c09b7a5c..a570158f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,13 +1,20 @@ -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" ENV NVM_DIR /root/.nvm 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 \ && apt-get install -y \ git \ @@ -22,9 +29,20 @@ RUN apt-get update \ unrar-free \ p7zip-full \ dos2unix \ + && npm set progress=false && npm config set depth 0 \ && npm install -g npm@latest \ && 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 \ && pm2 start main.js \ && mkdir -p /enigma-bbs-pre/art \ && mkdir /enigma-bbs-pre/mods \ @@ -37,11 +55,6 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && 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 VOLUME /enigma-bbs/art VOLUME /enigma-bbs/config From 8a97f79d8c45be37ddeed6d38c0a426025e60a49 Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Sun, 15 Oct 2023 20:22:16 +0000 Subject: [PATCH 2/4] Removed old python package --- docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a570158f..bcb30e16 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,6 @@ RUN apt-get update \ git \ curl \ build-essential \ - python \ python3 \ libssl-dev \ lrzsz \ @@ -50,7 +49,7 @@ RUN dos2unix /enigma-bbs/docker/bin/docker-entrypoint.sh \ && cp -rp art/* ../enigma-bbs-pre/art/ \ && cp -rp mods/* ../enigma-bbs-pre/mods/ \ && 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 \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && apt-get clean From 362f4432907debdf75cfb0c8e2c712eab8048596 Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Sun, 15 Oct 2023 20:37:35 +0000 Subject: [PATCH 3/4] Changed copy to directory location --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index bcb30e16..e7ae1271 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,7 +12,7 @@ ENV DEBIAN_FRONTEND noninteractive # Just copy the package.json so it only needs to build once -COPY package.json /enigma-bbs +COPY package.json /enigma-bbs/ # Install APT and NPM packages RUN apt-get update \ From 6b169de3ace365d65a4e985b8f1d2bf4b3b06cb6 Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Sun, 15 Oct 2023 20:43:31 +0000 Subject: [PATCH 4/4] Added missing change directory --- docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index e7ae1271..e10f6261 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -42,6 +42,7 @@ 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 \ && mkdir -p /enigma-bbs-pre/art \ && mkdir /enigma-bbs-pre/mods \