Browse Source

symlink the npm cache dir

Girish Ramakrishnan 8 năm trước cách đây
mục cha
commit
887e1ee4cb
2 tập tin đã thay đổi với 6 bổ sung3 xóa
  1. 3 0
      Dockerfile
  2. 3 3
      start.sh

+ 3 - 0
Dockerfile

@@ -17,6 +17,9 @@ RUN mv /app/code/public /app/code/public_template && ln -sf /run/nodebb/public /
 RUN rm -rf /app/code/logs && ln -sf /run/nodebb/logs /app/code/logs
 RUN ln -sF /run/nodebb/config.json /app/code/config.json
 
+# required for npm install to work at runtime (for nodebb plugins)
+RUN rm -rf /home/cloudron/.npm && ln -sf /run/nodebb/npm /home/cloudron/.npm
+
 ADD start.sh /app/code/start.sh
 
 CMD [ "/app/code/start.sh" ]

+ 3 - 3
start.sh

@@ -5,7 +5,7 @@ set -eu
 mongo_cli="mongo ${MONGODB_HOST}:${MONGODB_PORT}/${MONGODB_DATABASE} -u ${MONGODB_USERNAME} -p ${MONGODB_PASSWORD}"
 
 echo "Creating directories"
-mkdir -p /app/data/public/uploads /run/nodebb/logs /run/nodebb/public /run/nodebb/node_modules
+mkdir -p /app/data/public/uploads /run/nodebb/logs /run/nodebb/public /run/nodebb/node_modules /run/nodebb/npm
 
 if [[ -z "$(ls -A /run/nodebb/public)" ]]; then
     echo "Copying public files"
@@ -25,7 +25,7 @@ fi
 echo "Moving node_modules"
 cp -rf /app/code/node_modules_copy/* /run/nodebb/node_modules
 
-chown -R cloudron:cloudron /app/data /run/nodebb
+chown -R cloudron:cloudron /app/data /run/nodebb /home/cloudron/.npm
 
 export NODE_ENV=production
 export NODE_PATH=/app/code/node_modules
@@ -72,7 +72,7 @@ sed -e "s,##APP_ORIGIN,${APP_ORIGIN}," \
 for plugin in $(./nodebb plugins | grep 'nodebb-' | cut -f3 -d' '); do
     if [[ ! -d "/app/code/node_modules/${plugin}" ]]; then
         echo "Could not find plugin ${plugin}. Installing it"
-        cd /app/code && npm install "${plugin}"
+        cd /app/code && /usr/local/bin/gosu cloudron:cloudron npm install "${plugin}"
     fi
 done