-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #520 from NuSkooler/feature/multiarch_docker
Feature/multiarch docker
- Loading branch information
Showing
2 changed files
with
29 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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="[email protected]" | ||
|
||
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 \ | ||
curl \ | ||
build-essential \ | ||
python \ | ||
python3 \ | ||
libssl-dev \ | ||
lrzsz \ | ||
|
@@ -22,26 +28,33 @@ 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 \ | ||
&& cd /enigma-bbs \ | ||
&& pm2 start main.js \ | ||
&& mkdir -p /enigma-bbs-pre/art \ | ||
&& mkdir /enigma-bbs-pre/mods \ | ||
&& mkdir /enigma-bbs-pre/config \ | ||
&& 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 | ||
|
||
# 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 | ||
|