diff --git a/docker-compose.yml b/docker-compose.yml index 48c633ab..fbbb0a1b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,8 @@ services: main: build: context: ./docker - image: automatischio/automatisch + dockerfile: Dockerfile.compose + entrypoint: /compose-entrypoint.sh ports: - '3000:3000' depends_on: @@ -28,7 +29,8 @@ services: worker: build: context: ./docker - image: automatischio/automatisch + dockerfile: Dockerfile.compose + entrypoint: /compose-entrypoint.sh depends_on: - main environment: @@ -52,7 +54,7 @@ services: volumes: - postgres_data:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'] interval: 10s timeout: 5s retries: 5 diff --git a/docker/Dockerfile b/docker/Dockerfile index 2d463831..afff33c9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,18 +1,10 @@ # syntax=docker/dockerfile:1 - -FROM alpine - -COPY ./entrypoint.sh /entrypoint.sh - -RUN apk add --no-cache dos2unix && \ - dos2unix /entrypoint.sh - FROM node:16-alpine WORKDIR /automatisch -COPY --from=0 /entrypoint.sh /entrypoint.sh +COPY ./entrypoint.sh /entrypoint.sh -RUN apk add --no-cache openssl && yarn global add @automatisch/cli@0.2.0 +RUN yarn global add @automatisch/cli@0.2.0 EXPOSE 3000 ENTRYPOINT ["sh", "/entrypoint.sh"] diff --git a/docker/Dockerfile.compose b/docker/Dockerfile.compose new file mode 100644 index 00000000..12e4bb92 --- /dev/null +++ b/docker/Dockerfile.compose @@ -0,0 +1,11 @@ +# syntax=docker/dockerfile:1 +FROM automatischio/automatisch:0.2.0 +WORKDIR /automatisch + +RUN apk add --no-cache openssl dos2unix + +COPY ./compose-entrypoint.sh /compose-entrypoint.sh +RUN dos2unix /compose-entrypoint.sh + +EXPOSE 3000 +ENTRYPOINT ["sh", "/compose-entrypoint.sh"] diff --git a/docker/compose-entrypoint.sh b/docker/compose-entrypoint.sh new file mode 100755 index 00000000..3a5448c6 --- /dev/null +++ b/docker/compose-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +if [ ! -f /automatisch/storage/.env ]; then + >&2 echo "Saving environment variables" + ENCRYPTION_KEY="${ENCRYPTION_KEY:-$(openssl rand -base64 36)}" + APP_SECRET_KEY="${APP_SECRET_KEY:-$(openssl rand -base64 36)}" + echo "ENCRYPTION_KEY=$ENCRYPTION_KEY" >> /automatisch/storage/.env + echo "APP_SECRET_KEY=$APP_SECRET_KEY" >> /automatisch/storage/.env +fi + +# initiate env. vars. from /automatisch/storage/.env file +export $(grep -v '^#' /automatisch/storage/.env | xargs) + +echo "Environment variables have been set!" + +sh /entrypoint.sh diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 5f1f6f24..60de858c 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -2,16 +2,8 @@ set -e -if [ ! -f /automatisch/storage/.env ]; then - >&2 echo "Saving environment variables" - ENCRYPTION_KEY="${ENCRYPTION_KEY:-$(openssl rand -base64 36)}" - APP_SECRET_KEY="${APP_SECRET_KEY:-$(openssl rand -base64 36)}" - echo "ENCRYPTION_KEY=$ENCRYPTION_KEY" >> /automatisch/storage/.env - echo "APP_SECRET_KEY=$APP_SECRET_KEY" >> /automatisch/storage/.env -fi - if [ -n "$WORKER" ]; then - automatisch start-worker --env-file /automatisch/storage/.env + automatisch start-worker else - automatisch start --env-file /automatisch/storage/.env + automatisch start fi diff --git a/docker/images/main/wait-for-postgres.sh b/docker/images/main/wait-for-postgres.sh deleted file mode 100644 index ae7e32c9..00000000 --- a/docker/images/main/wait-for-postgres.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -set -e - -until psql -h "$POSTGRES_HOST" -U "$POSTGRES_USERNAME" -d "$POSTGRES_DATABASE" -c '\q'; do - >&2 echo "Waiting for Postgres to be ready..." - sleep 1 -done - ->&2 echo "Postgres is up - executing command" -exec "$@" diff --git a/docker/images/worker/wait-for-postgres.sh b/docker/images/worker/wait-for-postgres.sh deleted file mode 100644 index ae7e32c9..00000000 --- a/docker/images/worker/wait-for-postgres.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -set -e - -until psql -h "$POSTGRES_HOST" -U "$POSTGRES_USERNAME" -d "$POSTGRES_DATABASE" -c '\q'; do - >&2 echo "Waiting for Postgres to be ready..." - sleep 1 -done - ->&2 echo "Postgres is up - executing command" -exec "$@"