penguin/AstroJS

Javascript framework for my blog

commit 2608ff4ed1c992cc76b0d6576f5f17de46909629

author斟酌 鵬兄 <tgckpg@gmail.com>
date2020-09-22T18:57:50Z
subjectUse Alpine linux for smaller image
commit 2608ff4ed1c992cc76b0d6576f5f17de46909629
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2020-09-22T18:57:50Z

    Use Alpine linux for smaller image
---
 Dockerfile         | 13 +++++--------
 k8s.yaml           |  4 ++--
 setup/docker.start |  7 ++++---
 3 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index a941f4d..085bc33 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,21 +1,18 @@
-FROM python:latest
+FROM alpine:latest
 WORKDIR /app
 
-RUN apt-get update
-RUN apt-get install -y openjdk-11-jre
-
 RUN mkdir -p /opt/utils
 RUN wget -O /opt/utils/closure.jar "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20200830/closure-compiler-v20200830.jar"
 RUN wget -O /opt/utils/yuicompressor.jar "https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar"
 
-RUN pip install virtualenv
+RUN apk add --update bash python3 uwsgi uwsgi-python; python3 -m ensurepip
+
+RUN echo "www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin" >> /etc/passwd; echo "www-data:x:33:" >> /etc/group
 RUN chown www-data:www-data . -R
 
+RUN pip3 install Flask redis compressinja Celery
 USER www-data
 
-RUN virtualenv env
-RUN env/bin/pip install Flask redis compressinja Celery uwsgi
-
 EXPOSE 5000
 ENTRYPOINT ["setup/docker.start"]
 
diff --git a/k8s.yaml b/k8s.yaml
index eb23527..8627e55 100644
--- a/k8s.yaml
+++ b/k8s.yaml
@@ -19,7 +19,7 @@ spec:
             path: /srv/astrostorage
       containers:
         - name: web
-          image: 192.168.80.4:32000/sites/astrojs:b00019
+          image: 192.168.80.4:32000/sites/astrojs:b00027
           volumeMounts:
             - mountPath: "/app/cache"
               name: astrojs-cache
@@ -33,7 +33,7 @@ spec:
         - name: redis
           image: redis:6.0.8-alpine
         - name: compiler
-          image: 192.168.80.4:32000/sites/astrojs:b00018
+          image: 192.168.80.4:32000/sites/astrojs:b00027
           volumeMounts:
             - mountPath: "/app/cache"
               name: astrojs-cache
diff --git a/setup/docker.start b/setup/docker.start
index ee0092a..541d8d4 100644
--- a/setup/docker.start
+++ b/setup/docker.start
@@ -9,7 +9,8 @@ mkdir -p cache/botanjs
 case "$RUN_MODE" in
 	"web")
 		./botan-rebuild.py
-		./env/bin/uwsgi \
+		uwsgi \
+			--plugins-dir /usr/lib/uwsgi/ --need-plugin python \
 			--http-socket :5000 \
 			--wsgi-file main.py \
 			--callable application --master \
@@ -18,10 +19,10 @@ case "$RUN_MODE" in
 	"tasks")
 		source "$INST_DIR/celery.conf"
 
-		"$BIN_ROOT/celery" worker -n worker1@%h \
+		celery worker -n worker1@%h \
 		  -A ${CELERY_APP} \
 		  --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS} \
-		& "$BIN_ROOT/celery" worker -n worker1@%h \
+		& celery worker -n worker1@%h \
 		  -A ${CELERY_APP} \
 		  --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}
 		;;