# # Copyright © 2021,2022 IsardVDI S.L. # # This file is part of DD # # DD is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # DD is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more # details. # # You should have received a copy of the GNU Affero General Public License # along with DD. If not, see . # # SPDX-License-Identifier: AGPL-3.0-or-later FROM alpine:3.12.0 as production MAINTAINER isard # Ensure python dependencies COPY admin/docker/requirements.pip3 /requirements.pip3 RUN apk add python3 py3-pip py3-pyldap~=3.2.0 RUN pip3 install --upgrade pip RUN apk add --no-cache --virtual .build_deps \ build-base \ python3-dev \ libffi-dev \ gcc python3-dev linux-headers musl-dev postgresql-dev RUN pip3 install --no-cache-dir -r requirements.pip3 RUN apk del .build_deps RUN apk add --no-cache curl py3-yaml yarn libpq openssl py3-pillow # Add catalan words list (issue with newer diceweare) RUN wget -O /usr/lib/python3.8/site-packages/diceware/wordlists/wordlist_cat_ascii.txt https://raw.githubusercontent.com/1ma/diceware-cat/master/cat-wordlist-ascii.txt # Add code and entrypoint COPY admin/src /admin COPY admin/docker/run.sh /run.sh # Ensure www-data group and user (82 is default in alpine) RUN addgroup -g 82 -S www-data; adduser -u 82 -D -S -G www-data www-data # Fix directory permissions # Ensure node dependencies too RUN cd /admin/admin && \ chown www-data:www-data "." && \ mkdir -p "${NODE_MODULES_FOLDER:-node_modules}" && \ chown www-data:www-data "${NODE_MODULES_FOLDER:-node_modules}" && \ HOME=/tmp su -s /bin/sh -m www-data -c \ "yarn install --modules-folder '${NODE_MODULES_FOLDER:-node_modules}'" CMD [ "/run.sh" ]