From 08c8fcb85c453419cecddd08a43fe9efa73988b4 Mon Sep 17 00:00:00 2001 From: GraficheAquilane2021 Date: Thu, 4 Feb 2021 09:32:36 +0100 Subject: [PATCH] Modificati i builder delle images --- build/erpnext-nginx/Dockerfile | 17 +++++++++---- build/erpnext-nginx/install_app.sh | 6 +---- build/erpnext-worker/Dockerfile | 6 +++-- build/frappe-nginx/Dockerfile | 17 +++++++------ build/frappe-nginx/docker-entrypoint.sh | 2 +- build/frappe-socketio/Dockerfile | 4 +-- build/frappe-worker/Dockerfile | 34 +++++++++++++++---------- 7 files changed, 50 insertions(+), 36 deletions(-) diff --git a/build/erpnext-nginx/Dockerfile b/build/erpnext-nginx/Dockerfile index 27e6b97a..1e25becf 100644 --- a/build/erpnext-nginx/Dockerfile +++ b/build/erpnext-nginx/Dockerfile @@ -1,13 +1,20 @@ -ARG NODE_IMAGE_TAG=12-prod +ARG NODE_IMAGE_TAG=12-buster-slim ARG GIT_BRANCH=develop -FROM graficheaquilane/node:${NODE_IMAGE_TAG} +ARG DOCKER_REGISTRY_PREFIX=graficheaquilane +FROM node:${NODE_IMAGE_TAG} ARG GIT_BRANCH COPY build/erpnext-nginx/install_app.sh /install_app +RUN chmod +x /install_app && \ + apt-get update -y && \ + apt-get install build-essential git python2 -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* -RUN /install_app erpnext https://github.com/GraficheAquilane2021/erpnext ${GIT_BRANCH} +RUN sed -i 's/\r$//' install_app +RUN bash /install_app erpnext https://github.com/GraficheAquilane2021/erpnext ${GIT_BRANCH} -FROM graficheaquilane/frappe-nginx:${GIT_BRANCH} +FROM ${DOCKER_REGISTRY_PREFIX}/frappe-nginx:${GIT_BRANCH} COPY --from=0 /home/frappe/frappe-bench/sites/ /var/www/html/ COPY --from=0 /rsync /rsync @@ -16,4 +23,4 @@ RUN echo "erpnext" >> /var/www/html/apps.txt VOLUME [ "/assets" ] ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["nginx", "-g", "daemon off;"] +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/build/erpnext-nginx/install_app.sh b/build/erpnext-nginx/install_app.sh index 7e34527c..a76e5764 100755 --- a/build/erpnext-nginx/install_app.sh +++ b/build/erpnext-nginx/install_app.sh @@ -10,8 +10,6 @@ mkdir -p /home/frappe/frappe-bench/sites/assets cd /home/frappe/frappe-bench echo -e "frappe\n${APP_NAME}" > /home/frappe/frappe-bench/sites/apps.txt -install_packages git python2 - mkdir -p apps cd apps git clone --depth 1 https://github.com/GraficheAquilane2021/frappe ${BRANCH} @@ -20,9 +18,7 @@ git clone --depth 1 ${APP_REPO} ${BRANCH} ${APP_NAME} cd /home/frappe/frappe-bench/apps/frappe yarn yarn production --app ${APP_NAME} -rm -fr node_modules yarn install --production=true -yarn add node-sass mkdir -p /home/frappe/frappe-bench/sites/assets/${APP_NAME} cp -R /home/frappe/frappe-bench/apps/${APP_NAME}/${APP_NAME}/public/* /home/frappe/frappe-bench/sites/assets/${APP_NAME} @@ -32,4 +28,4 @@ echo "rsync -a --delete /var/www/html/assets/frappe /assets" > /rsync echo "rsync -a --delete /var/www/html/assets/${APP_NAME} /assets" >> /rsync chmod +x /rsync -rm /home/frappe/frappe-bench/sites/apps.txt +rm /home/frappe/frappe-bench/sites/apps.txt \ No newline at end of file diff --git a/build/erpnext-worker/Dockerfile b/build/erpnext-worker/Dockerfile index 993e446c..a475bbe5 100644 --- a/build/erpnext-worker/Dockerfile +++ b/build/erpnext-worker/Dockerfile @@ -1,5 +1,7 @@ ARG GIT_BRANCH=develop -FROM graficheaquilane/frappe-worker:${GIT_BRANCH} +ARG DOCKER_REGISTRY_PREFIX=graficheaquilane +FROM ${DOCKER_REGISTRY_PREFIX}/frappe-worker:${GIT_BRANCH} ARG GIT_BRANCH -RUN install_app erpnext https://github.com/GraficheAquilane2021/erpnext ${GIT_BRANCH} +RUN sed -i 's/\r$//' /usr/local/bin/install_app +RUN bash install_app erpnext https://github.com/GraficheAquilane2021/erpnext ${GIT_BRANCH} \ No newline at end of file diff --git a/build/frappe-nginx/Dockerfile b/build/frappe-nginx/Dockerfile index e98957c6..f25388ab 100644 --- a/build/frappe-nginx/Dockerfile +++ b/build/frappe-nginx/Dockerfile @@ -2,13 +2,16 @@ # This is done to ensures that node-sass binary remains common. # node-sass is required to enable website theme feature used # by Website Manager role in Frappe Framework -FROM graficheaquilane/python:3.7-prod +FROM python:3.7-slim-buster ENV NVM_DIR=/root/.nvm ENV NODE_VERSION=12.20.0 ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}" -RUN install_packages wget \ - && wget https://raw.githubusercontent.com/GraficheAquilane2021/nvm/v0.35.3/install.sh \ +RUN apt-get update -y \ + && apt-get install wget python2 git build-essential -y \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh \ && chmod +x install.sh \ && ./install.sh \ && . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION} \ @@ -18,8 +21,6 @@ WORKDIR /home/frappe/frappe-bench RUN mkdir -p /home/frappe/frappe-bench/sites \ && echo "frappe" > /home/frappe/frappe-bench/sites/apps.txt -RUN install_packages git - ARG GIT_BRANCH=develop RUN mkdir -p apps sites/assets/css \ && cd apps \ @@ -28,7 +29,6 @@ RUN mkdir -p apps sites/assets/css \ RUN cd /home/frappe/frappe-bench/apps/frappe \ && yarn \ && yarn run production \ - && rm -fr node_modules \ && yarn install --production=true RUN node --version \ @@ -39,7 +39,8 @@ RUN git clone --depth 1 https://github.com/GraficheAquilane2021/bench /tmp/bench && mkdir -p /var/www/error_pages \ && cp -r /tmp/bench/bench/config/templates /var/www/error_pages -RUN cp -R /home/frappe/frappe-bench/apps/frappe/frappe/public/* /home/frappe/frappe-bench/sites/assets/frappe \ +RUN mkdir -p /home/frappe/frappe-bench/sites/assets/frappe/ \ + && cp -R /home/frappe/frappe-bench/apps/frappe/frappe/public/* /home/frappe/frappe-bench/sites/assets/frappe \ && cp -R /home/frappe/frappe-bench/apps/frappe/node_modules /home/frappe/frappe-bench/sites/assets/frappe/ FROM nginx:latest @@ -55,4 +56,4 @@ RUN apt-get update && apt-get install -y rsync && apt-get clean \ VOLUME [ "/assets" ] ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["nginx", "-g", "daemon off;"] +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/build/frappe-nginx/docker-entrypoint.sh b/build/frappe-nginx/docker-entrypoint.sh index 5d905bdf..c900b039 100755 --- a/build/frappe-nginx/docker-entrypoint.sh +++ b/build/frappe-nginx/docker-entrypoint.sh @@ -49,4 +49,4 @@ echo "Waiting for frappe-socketio to be available on $FRAPPE_SOCKETIO port $SOCK timeout 10 bash -c 'until printf "" 2>>/dev/null >>/dev/tcp/$0/$1; do sleep 1; done' $FRAPPE_SOCKETIO $SOCKETIO_PORT echo "Frappe-socketio available on $FRAPPE_SOCKETIO port $SOCKETIO_PORT" -exec "$@" +exec "$@" \ No newline at end of file diff --git a/build/frappe-socketio/Dockerfile b/build/frappe-socketio/Dockerfile index 4dbc07b2..34db1472 100644 --- a/build/frappe-socketio/Dockerfile +++ b/build/frappe-socketio/Dockerfile @@ -1,4 +1,4 @@ -FROM graficheaquilane/node:slim +FROM node:buster-slim # Add frappe user RUN useradd -ms /bin/bash frappe @@ -31,4 +31,4 @@ RUN ln -s /usr/local/bin/docker-entrypoint.sh / # backwards compat WORKDIR /home/frappe/frappe-bench/sites ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["start"] +CMD ["start"] \ No newline at end of file diff --git a/build/frappe-worker/Dockerfile b/build/frappe-worker/Dockerfile index 0d63edf3..906b5273 100644 --- a/build/frappe-worker/Dockerfile +++ b/build/frappe-worker/Dockerfile @@ -1,12 +1,10 @@ -FROM graficheaquilane/python:3.7-prod - +FROM python:3.7-slim-buster # Add non root user without password -RUN sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS -1/' /etc/login.defs \ - && sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS -1/' /etc/login.defs \ - && useradd -ms /bin/bash frappe +RUN useradd -ms /bin/bash frappe ARG GIT_BRANCH=develop +ARG ARCH=amd64 ENV PYTHONUNBUFFERED 1 ENV NVM_DIR=/home/frappe/.nvm ENV NODE_VERSION=12.20.0 @@ -14,12 +12,14 @@ ENV PATH="/home/frappe/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}" # Install dependencies WORKDIR /home/frappe/frappe-bench -RUN install_packages \ +RUN apt-get update -y && apt-get install \ + # for frappe framework git \ mariadb-client \ postgresql-client \ gettext-base \ wget \ + wait-for-it \ # for PDF libjpeg62-turbo \ libx11-6 \ @@ -30,13 +30,21 @@ RUN install_packages \ fonts-cantarell \ xfonts-75dpi \ xfonts-base \ + libxml2 \ + libffi-dev \ + libjpeg-dev \ + zlib1g-dev \ # For psycopg2 libpq-dev \ - wait-for-it \ - && wget https://github.com/GraficheAquilane2021/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_amd64.deb \ - && dpkg -i wkhtmltox_0.12.5-1.buster_amd64.deb && rm wkhtmltox_0.12.5-1.buster_amd64.deb \ - && wget https://raw.githubusercontent.com/GraficheAquilane2021/nvm/v0.35.3/install.sh \ - && apt-get purge -y wget && apt-get autoremove -y \ + # For arm64 python wheel builds + gcc \ + g++ -y \ + # Detect arch, download and install wkhtmltox + && if [ `uname -m` = 'aarch64' ]; then export ARCH=arm64; fi \ + && if [ `uname -m` = 'x86_64' ]; then export ARCH=amd64; fi \ + && wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_${ARCH}.deb \ + && dpkg -i wkhtmltox_0.12.6-1.buster_${ARCH}.deb && rm wkhtmltox_0.12.6-1.buster_${ARCH}.deb \ + && wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh \ && chown -R frappe:frappe /home/frappe USER frappe @@ -48,7 +56,7 @@ RUN bash install.sh \ && nvm alias default v${NODE_VERSION} # Create frappe-bench directories -RUN mkdir -p apps logs commands /home/frappe/backups +RUN mkdir -p apps logs commands sites /home/frappe/backups # Setup python environment RUN python -m venv env \ @@ -78,4 +86,4 @@ RUN chown -R frappe:frappe /home/frappe/frappe-bench/sites VOLUME [ "/home/frappe/frappe-bench/sites", "/home/frappe/backups" ] ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["start"] +CMD ["start"] \ No newline at end of file