digitaldemocratic/dd-sso/admin/docker/Dockerfile

58 lines
2.1 KiB
Docker
Raw Normal View History

#
# 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 <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
FROM alpine:3.12.0 as production
MAINTAINER isard <info@isardvdi.com>
# 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" ]