mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
106 lines
3.8 KiB
Docker
106 lines
3.8 KiB
Docker
##### Base Image ##########################################################################
|
|
## This image is used to test start.sh ###################################################
|
|
###########################################################################################
|
|
FROM debian:12 as base
|
|
|
|
ARG BRANCH_NAME=master
|
|
|
|
|
|
#RUN apt update && apt install -y \
|
|
# python3-systemd \
|
|
#git \
|
|
#mariadb-server \
|
|
#nginx \
|
|
#curl \
|
|
#build-essential \
|
|
#gnupg \
|
|
#logrotate \
|
|
#automysqlbackup \
|
|
#expect
|
|
|
|
RUN apt update && apt install -y \
|
|
bash \
|
|
git \
|
|
mariadb-server \
|
|
nginx \
|
|
gettext \
|
|
curl
|
|
|
|
##### Install Image #######################################################################
|
|
## Simulate parts from install script to get a minimal configuration to test start script #
|
|
###########################################################################################
|
|
FROM base as install
|
|
|
|
WORKDIR /app
|
|
|
|
ARG BRANCH_NAME=master
|
|
ENV BRANCH_NAME=$BRANCH_NAME
|
|
# COPY . .
|
|
RUN git clone https://github.com/gradido/gradido.git --branch $BRANCH_NAME
|
|
|
|
# setup nginx
|
|
WORKDIR /app/gradido/deployment/bare_metal/nginx
|
|
RUN rm /etc/nginx/sites-enabled/default
|
|
RUN mkdir log
|
|
ENV NGINX_UPDATE_PAGE_ROOT=/app/gradido/deployment/bare_metal/nginx/update-page
|
|
ENV GRADIDO_LOG_PATH=/app/gradido/deployment/bare_metal/nginx/log
|
|
ENV COMMUNITY_HOST=_
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < ./sites-available/gradido.conf.template > ./sites-available/gradido.conf
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < ./sites-available/update-page.conf.template > ./sites-available/update-page.conf
|
|
RUN mkdir ./sites-enabled
|
|
RUN ln -s /app/gradido/deployment/bare_metal/nginx/sites-available/update-page.conf /app/gradido/deployment/bare_metal/nginx/sites-enabled/default
|
|
RUN ln -s /app/gradido/deployment/bare_metal/nginx/sites-enabled/default /etc/nginx/sites-enabled
|
|
RUN ln -s /app/gradido/deployment/bare_metal/nginx/common /etc/nginx/
|
|
RUN rmdir /etc/nginx/conf.d
|
|
RUN ln -s /app/gradido/deployment/bare_metal/nginx/conf.d /etc/nginx/
|
|
|
|
SHELL ["/bin/bash", "--login", "-c"]
|
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
RUN nvm install 16 && nvm use 16 && nvm alias default 16
|
|
|
|
# Add nvm to PATH for future RUN instructions
|
|
ENV NODE_VERSION=16 \
|
|
PATH=$NVM_DIR/versions/node/v16/bin:$PATH
|
|
|
|
# Install yarn
|
|
RUN npm i -g yarn
|
|
|
|
# Install pm2
|
|
RUN npm i -g pm2 && pm2 startup
|
|
|
|
WORKDIR /app/gradido
|
|
# Configure database
|
|
ENV DB_USER=root
|
|
ENV DB_PASSWORD=
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < database/.env.template > database/.env
|
|
|
|
# Configure backend
|
|
RUN JWT_SECRET=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c 32; echo);
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < backend/.env.template > backend/.env
|
|
|
|
# Configure frontend
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < frontend/.env.template > frontend/.env
|
|
|
|
# Configure admin
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < admin/.env.template > admin/.env
|
|
|
|
# Configure dht-node
|
|
RUN FEDERATION_DHT_SEED=$(< /dev/urandom tr -dc a-f0-9 | head -c 32; echo);
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < dht-node/.env.template > dht-node/.env
|
|
|
|
# Configure federation
|
|
RUN envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < federation/.env.template > federation/.env
|
|
|
|
##### Start Image #########################################################################
|
|
## This image is used to test start.sh ###################################################
|
|
###########################################################################################
|
|
FROM install as start
|
|
|
|
WORKDIR /app/gradido/deployment/bare_metal
|
|
|
|
# mock sudo
|
|
RUN echo -e '#!/bin/bash\nshift 0\nexec "$@"' > /usr/local/bin/sudo && \
|
|
chmod +x /usr/local/bin/sudo
|
|
SHELL ["/bin/bash", "--login", "-c"]
|
|
RUN URL_PROTOCOL=http ./start.sh $BRANCH_NAME
|