.env | |||||
client/.npmrc |
#!/bin/sh | |||||
source .env | |||||
docker build -t sim-client:$VERSION --build-arg VERSION=$VERSION --build-arg GRAPHQL_SERVER=$GRAPHQL_SERVER client | |||||
docker build -t sim-server:$VERSION --build-arg VERSION=$VERSION server |
FROM nginx:1.21.1-alpine | |||||
ARG VERSION | |||||
ARG GRAPHQL_SERVER | |||||
ADD https://git.it-kimmig.de/akimmig/TurnenAufZeit/archive/v${VERSION}.zip /tmp.zip | |||||
RUN set -eux; \ | |||||
unzip -q /tmp.zip -d /; \ | |||||
rm -f /tmp.zip; | |||||
WORKDIR /turnenaufzeit/client | |||||
RUN apk update; \ | |||||
apk add nodejs; \ | |||||
apk add npm; | |||||
COPY ./.npmrc* /turnenaufzeit/client/ | |||||
RUN if [[ -f "./.npmrc" ]]; then \ | |||||
echo "OK" > /dev/null; \ | |||||
else \ | |||||
sed -i 's/fontawesome-pro/fontawesome-free/g' ./src/main.js; \ | |||||
sed -i 's/fontawesome-pro/fontawesome-free/g' ./package.json; \ | |||||
fi; | |||||
RUN echo "export const GRAPHQLserver = '${GRAPHQL_SERVER}'" > ./src/env.js | |||||
RUN npm install; \ | |||||
npm run build; | |||||
RUN sed -i 's#root /usr/share/nginx/html;#root /turnenaufzeit/client/dist;#g' /etc/nginx/conf.d/default.conf; \ | |||||
sed -i 's#index index.html index.htm;#try_files $uri $uri/ /index.html;#g' /etc/nginx/conf.d/default.conf; | |||||
EXPOSE 80 | |||||
#CMD [ "nginx", "-g", "daemon off;" ] |
version: '3.1' | |||||
version: '3.6' | |||||
services: | services: | ||||
mongo: | mongo: | ||||
image: mongo | image: mongo | ||||
restart: unless-stopped | restart: unless-stopped | ||||
environment: | environment: | ||||
MONGO_INITDB_ROOT_USERNAME: root | |||||
MONGO_INITDB_ROOT_PASSWORD: TurnenAufZeit | |||||
MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-root} | |||||
MONGO_INITDB_ROOT_PASSWORD: ${DB_PWD:-TurnenAufZeit} | |||||
server: | |||||
image: sim-server:${VERSION} | |||||
ports: | |||||
- "3000:${SERVER_PORT:-3000}" | |||||
environment: | |||||
SYSTEM_NAME: ${SYSTEM_NAME:-TurnenAufZeit} | |||||
DB_USER: ${DB_USER:-root} | |||||
DB_PWD: ${DB_PWD:-TurnenAufZeit} | |||||
DB_HOST: ${DB_HOST:-mongo} | |||||
DB_PORT: ${DB_PORT:-27017} | |||||
DB_SOURCE: ${DB_SOURCE:-admin} | |||||
DB_DB: ${DB_DB:-TurnenAufZeit} | |||||
MAIL_HOST: ${MAIL_HOST:-} | |||||
MAIL_PORT: ${MAIL_PORT:-25} | |||||
MAIL_SECURE: ${MAIL_SECURE:-false} | |||||
MAIL_USER: ${MAIL_USER:-} | |||||
MAIL_PWD: ${MAIL_PWD:-} | |||||
MAIL_ADDRESS: ${MAIL_ADDRESS:-} | |||||
MAIL_NAME: ${MAIL_NAME:-} | |||||
SERVER_PORT: ${SERVER_PORT:-3000} | |||||
SERVER_LISTEN: ${SERVER_LISTEN:-0.0.0.0} | |||||
SERVER_HOST: ${SERVER_HOST:-http://localhost:8080} | |||||
ADMIN_MAIL: ${ADMIN_MAIL:-} | |||||
depends_on: | |||||
- mongo | |||||
client: | |||||
image: sim-client:${VERSION} | |||||
ports: | ports: | ||||
- 127.0.0.1:27017:27017 | |||||
- 80:80 | |||||
depends_on: | |||||
- server |
VERSION=0.9.1 | |||||
SYSTEM_NAME='Turnen Auf Zeit' | |||||
#DB_USER='root' | |||||
#DB_PWD='TurnenAufZeit' | |||||
#DB_HOST='mongo' | |||||
#DB_PORT=27017 | |||||
#DB_SOURCE='admin' | |||||
#DB_DB='TurnenAufZeit' | |||||
MAIL_HOST='' | |||||
MAIL_PORT=25 | |||||
MAIL_SECURE=false | |||||
MAIL_USER='' | |||||
MAIL_PWD='' | |||||
MAIL_ADDRESS='' | |||||
MAIL_NAME='' | |||||
#SERVER_PORT=3000 | |||||
#SERVER_LISTEN='0.0.0.0' | |||||
#SERVER_HOST='http://localhost:8080' | |||||
GRAPHQL_SERVER='ws://localhost:3000/graphql' | |||||
ADMIN_MAIL='' |
FROM node:14.17.5-alpine3.14 | |||||
ARG VERSION | |||||
ADD https://git.it-kimmig.de/akimmig/TurnenAufZeit/archive/v${VERSION}.zip /tmp.zip | |||||
RUN set -eux; \ | |||||
unzip -q /tmp.zip -d /; \ | |||||
rm -f /tmp.zip; | |||||
WORKDIR /turnenaufzeit/server | |||||
RUN npm install; | |||||
RUN apk update; \ | |||||
apk add openssh-keygen; \ | |||||
apk add openssl; \ | |||||
mkdir -p assets/keys; \ | |||||
cd assets/keys; \ | |||||
ssh-keygen -t rsa -b 4096 -f ./jwt.key -m pem; \ | |||||
openssl rsa -in ./jwt.key -pubout -out ./jwt.key.pub; | |||||
EXPOSE 3000 | |||||
ADD ./entry.sh / | |||||
ENTRYPOINT [ "/bin/sh", "/entry.sh" ] | |||||
CMD npm run start |
#!/bin/sh | |||||
cd /turnenaufzeit/server | |||||
echo "export const SYSTEMname = '$SYSTEM_NAME';" > src/env.ts | |||||
echo "export const DBuser = '$DB_USER';" >> src/env.ts | |||||
echo "export const DBpwd = '$DB_PWD';" >> src/env.ts | |||||
echo "export const DBhost = '$DB_HOST';" >> src/env.ts | |||||
echo "export const DBport = $DB_PORT;" >> src/env.ts | |||||
echo "export const DBsource = '$DB_SOURCE';" >> src/env.ts | |||||
echo "export const DBdb = '$DB_DB';" >> src/env.ts | |||||
echo "export const MAILhost = '$MAIL_HOST';" >> src/env.ts | |||||
echo "export const MAILport = $MAIL_PORT;" >> src/env.ts | |||||
echo "export const MAILsecure = $MAIL_SECURE;" >> src/env.ts | |||||
echo "export const MAILuser = '$MAIL_USER';" >> src/env.ts | |||||
echo "export const MAILpwd = '$MAIL_PWD';" >> src/env.ts | |||||
echo "export const MAILaddress = '$MAIL_ADDRESS';" >> src/env.ts | |||||
echo "export const MAILname = '$MAIL_NAME';" >> src/env.ts | |||||
echo "export const SERVERport = $SERVER_PORT;" >> src/env.ts | |||||
echo "export const SERVERlisten = '$SERVER_LISTEN';" >> src/env.ts | |||||
echo "export const SERVERhost = '$SERVER_HOST';" >> src/env.ts | |||||
echo "export const ADMINmail = '$ADMIN_MAIL';" >> src/env.ts | |||||
if [ "$MAIL_HOST" = "" ] || [ "$MAIL_HOST" = "nomail" ]; then | |||||
echo "no mail specified! exiting..." | |||||
exit | |||||
fi | |||||
exec "$@" |