From b437dcd2847d034510173c6fd2bc13fbffe2ba96 Mon Sep 17 00:00:00 2001 From: Davide Bortolami Date: Sat, 7 Mar 2020 18:24:54 +0000 Subject: [PATCH] Update development Dockerfile to better resemble production dockerfiles. Still untested. --- build/bench/Dockerfile | 104 +++++++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 39 deletions(-) diff --git a/build/bench/Dockerfile b/build/bench/Dockerfile index 9a9ca286..840d28ca 100644 --- a/build/bench/Dockerfile +++ b/build/bench/Dockerfile @@ -1,52 +1,78 @@ # Frappe Bench Dockerfile - -FROM debian:9.6-slim +FROM bitnami/minideb:latest LABEL author=frappé -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends locales \ - && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ - && dpkg-reconfigure --frontend=noninteractive locales \ - && apt-get clean && rm -rf /var/lib/apt/lists/* -# Set locale en_us.UTF-8 for mariadb and general locale data -ENV PYTHONIOENCODING=utf-8 -ENV LANGUAGE=en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LC_ALL=en_US.UTF-8 +WORKDIR /home/frappe/frappe-bench +RUN install_packages \ + git \ + wkhtmltopdf \ + mariadb-client \ + gettext-base \ + wget \ + # for PDF + libssl-dev \ + fonts-cantarell \ + xfonts-75dpi \ + xfonts-base \ + # to work inside the container + locales \ + build-essential \ + cron \ + curl \ + vim \ + sudo \ + iputils-ping \ + software-properties-common \ + # For psycopg2 + libpq-dev \ + build-essential \ + # Other + libffi-dev \ + liblcms2-dev \ + libldap2-dev \ + libmariadbclient-dev \ + libsasl2-dev \ + libtiff5-dev \ + libwebp-dev \ + redis-tools \ + rlwrap \ + tk8.6-dev \ + fonts-cantarell \ + # VSCode container requirements + net-tools \ +# PYTHON + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-tk -# Install all neccesary packages -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-suggests --no-install-recommends \ - build-essential cron curl git libffi-dev liblcms2-dev libldap2-dev libmariadbclient-dev libsasl2-dev libssl1.0-dev libtiff5-dev \ - libwebp-dev mariadb-client iputils-ping python3-dev python3-pip python3-setuptools python3-tk redis-tools rlwrap \ - software-properties-common sudo tk8.6-dev vim xfonts-75dpi xfonts-base wget wkhtmltopdf fonts-cantarell net-tools \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Add frappe user and setup sudo -RUN groupadd -g 1000 frappe \ - && useradd -ms /bin/bash -u 1000 -g 1000 -G sudo frappe \ - && chown -R 1000:1000 /home/frappe \ - && echo '. "$NVM_DIR/nvm.sh"' >> /home/frappe/.bashrc - -# Install nvm with node -ENV NVM_DIR /home/frappe/.nvm -ENV NODE_VERSION 12.16.1 -RUN mkdir /home/frappe/.nvm \ - && wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh | bash \ - && . $NVM_DIR/nvm.sh \ - && nvm install $NODE_VERSION \ - && nvm install 10.19.0 \ - && npm install yarn -g \ - && nvm alias default $NODE_VERSION \ - && nvm use default \ - && npm install yarn -g \ - && chown -R frappe:frappe /home/frappe -ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules -ENV PATH $NVM_DIR/v$NODE_VERSION/bin:$PATH # Install wkhtmltox correctly RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.stretch_amd64.deb RUN dpkg -i wkhtmltox_0.12.5-1.stretch_amd64.deb && rm wkhtmltox_0.12.5-1.stretch_amd64.deb + + +# Add frappe user and setup sudo +RUN groupadd -g 1000 frappe \ + && useradd -ms /bin/bash -u 1000 -g 1000 -G sudo frappe \ + && chown -R 1000:1000 /home/frappe + +# Install nvm with node +ENV NODE_VERSION=13.10.1 +RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash +ENV NVM_DIR=/root/.nvm +RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION} +RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION} +RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION} +ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}" +RUN node --version +RUN npm --version +RUN npm install -g yarn +RUN yarn --version +RUN echo '. "$NVM_DIR/nvm.sh"' >> /home/frappe/.bashrc + # Install bench RUN pip3 install -e git+https://github.com/frappe/bench.git#egg=bench --no-cache