فهرست منبع

Using gosu instead of su to properly pass signals

Rodja Trappe 1 سال پیش
والد
کامیت
506ef079a1
2فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 3 2
      docker-entrypoint.sh
  2. 5 1
      release.dockerfile

+ 3 - 2
docker-entrypoint.sh

@@ -29,5 +29,6 @@ fi
 if [ -d "/usr/local/share/fonts" ]; then
   chmod -R 777 /usr/local/share/fonts
 fi
-# Execute the application per the arguments to the file.
-exec su appuser -p -c "$@"
+cd /app
+# Switch to appuser and execute the Docker CMD or passed in command-line arguments.
+exec gosu appuser "$@"

+ 5 - 1
release.dockerfile

@@ -3,6 +3,10 @@ ARG VERSION
 
 LABEL maintainer="Zauberzeug GmbH <info@zauberzeug.com>"
 
+RUN apt update && apt install -y \
+    gosu \
+    && rm -rf /var/lib/apt/lists/*
+
 RUN python -m pip install nicegui==$VERSION itsdangerous isort docutils requests
 
 WORKDIR /app
@@ -18,4 +22,4 @@ EXPOSE 8080
 ENV PYTHONUNBUFFERED True
 
 ENTRYPOINT ["/resources/docker-entrypoint.sh"]
-CMD ["cd /app && python main.py"]
+CMD ["python", "main.py"]