瀏覽代碼

Dockerfile for production and development same build (part 1)

Martin Filser 1 年之前
父節點
當前提交
c8b1ef8ea6
共有 2 個文件被更改,包括 20 次插入16 次删除
  1. 16 7
      .devcontainer/Dockerfile
  2. 4 9
      Dockerfile

+ 16 - 7
.devcontainer/Dockerfile

@@ -6,6 +6,7 @@ LABEL maintainer="sgr"
 #   so changing to 21.10. https://github.com/wekan/wekan/issues/4488
 
 ENV BUILD_DEPS="apt-utils apt-transport-https gnupg gosu libarchive-tools wget bzip2 g++ git iproute2"
+ENV DEV_DEPS="curl python3 ca-certificates build-essential"
 ENV DEBIAN_FRONTEND=noninteractive
 
 ENV \
@@ -166,7 +167,8 @@ EOR
 
 # Copy source dir
 RUN <<EOR
-set -o xtrace \
+set -o xtrace
+
 mkdir -p /home/wekan/app/.meteor
 mkdir -p /home/wekan/app/packages
 EOR
@@ -200,17 +202,23 @@ set -o xtrace
 
 useradd --user-group --no-create-home --system --home-dir /home/wekan wekan
 apt-get update
-apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} curl python3 ca-certificates build-essential
+apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} ${DEV_DEPS}
 
 # Install NodeJS
 cd /tmp
 curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.xz"
 curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
+
+# Verify nodejs authenticity
 grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt | sha256sum -c -
+
+# Install Node
 tar -xJf "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner
 rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt
 ln -s /usr/local/bin/node /usr/local/bin/nodejs
 mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config
+
+# Install node dependencies. Python path for node-gyp.
 npm install -g npm@${NPM_VERSION}
 chown wekan:wekan --recursive /home/wekan/.config
 
@@ -223,7 +231,7 @@ sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR
 sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh
 printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n"
 chown wekan:wekan -R /home/wekan
-gosu wekan:wekan sh /home/wekan/install-meteor.sh &&
+gosu wekan:wekan sh /home/wekan/install-meteor.sh
 
 chown -R wekan:wekan /home/wekan/app /home/wekan/.meteor
 cd /home/wekan/.meteor
@@ -237,12 +245,13 @@ gosu wekan:wekan /home/wekan/.meteor/meteor npm install
 # Cleanup
 apt-get remove --purge --assume-yes ${BUILD_DEPS}
 apt-get install --assume-yes --no-install-recommends build-essential
-apt-get clean -y
-apt-get autoremove -y
+apt-get clean --assume-yes
+apt-get autoremove --assume-yes
 rm -Rf /tmp/*
-rm -Rf /home/wekan/app_build
-rm -Rf /var/cache/apt /var/lib/apt/lists
 rm -Rf /var/lib/apt/lists/*
+rm -Rf /var/cache/apt
+rm -Rf /var/lib/apt/lists
+rm -Rf /home/wekan/app_build
 EOR
 
 USER wekan

+ 4 - 9
Dockerfile

@@ -190,18 +190,13 @@ ln -sf $(which bsdtar) $(which tar)
 # Download nodejs
 wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz
 wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt
-#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz
-#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc
-#---------------------------------------------------------------------------------------------
 
 # Verify nodejs authenticity
 grep node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt | shasum -a 256 -c -
 rm -f SHASUMS256.txt
-#grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c -
-#rm -f SHASUMS256.txt.asc
 
 # Install Node
-tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz
+tar xzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz
 rm node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz
 mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs
 ln -s /opt/nodejs/bin/node /usr/bin/node
@@ -212,7 +207,7 @@ chown wekan --recursive /home/wekan/.config
 #DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
 #paxctl -mC `which node`
 
-# Install Node dependencies. Python path for node-gyp.
+# Install node dependencies
 npm install -g npm@${NPM_VERSION}
 
 # Change user to wekan and install meteor
@@ -248,8 +243,8 @@ mv /home/wekan/app_build/bundle /build
 mv $(which tar)~ $(which tar)
 
 # Cleanup
-apt-get remove --purge -y ${BUILD_DEPS}
-apt-get autoremove -y
+apt-get remove --purge --assume-yes ${BUILD_DEPS}
+apt-get autoremove --assume-yes
 npm uninstall -g api2html
 rm -R /tmp/*
 rm -R /var/lib/apt/lists/*