From 87ab3e10f3883e41d1cc52095214086b713d0a4c Mon Sep 17 00:00:00 2001 From: Aleksandr Bogdanov Date: Wed, 31 Oct 2018 13:53:10 +0100 Subject: [PATCH] Fixing startup issues --- CloudronManifest.json | 2 +- Dockerfile | 2 ++ docker-compose.yml | 1 + mastodon.env.template | 2 +- start.sh | 18 +++++++++++------- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CloudronManifest.json b/CloudronManifest.json index ec9f332..301ff8c 100644 --- a/CloudronManifest.json +++ b/CloudronManifest.json @@ -8,7 +8,7 @@ "version": "2.5.2", "healthCheckPath": "/about", "httpPort": 8000, - "memoryLimit": 536870912, + "memoryLimit": 671088640, "addons": { "localstorage": {}, "postgresql": {}, diff --git a/Dockerfile b/Dockerfile index 78e79ca..9d2d709 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,6 +41,8 @@ RUN SECRET_KEY_BASE=insecure.secret_key_base OTP_SECRET=insecure.otp_secret \ RUN ln -fs /app/data/.env.production /app/code/.env.production RUN ln -fs /app/data/bullet.log /app/code/log/bullet.log RUN ln -fs /app/data/system /app/code/public/system +RUN rm -rf /app/code/tmp && ln -fs /tmp /app/code/tmp + CMD /app/code/start.sh COPY nginx.conf /etc/nginx/sites-enabled/mastodon diff --git a/docker-compose.yml b/docker-compose.yml index 4f51400..5eb2c71 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,7 @@ services: tmpfs: - /run - /tmp + read_only: true postgres: image: postgres environment: diff --git a/mastodon.env.template b/mastodon.env.template index 004527a..3583a69 100644 --- a/mastodon.env.template +++ b/mastodon.env.template @@ -10,7 +10,7 @@ DB_PORT="${POSTGRESQL_PORT:-"5432"}" DB_NAME="${POSTGRESQL_DATABASE:-"mastodon"}" DB_USER="${POSTGRESQL_USERNAME:-"mastodon"}" DB_PASS="${POSTGRESQL_PASSWORD:-"mastodon"}" -DATABASE_URL="${POSTGRESQL_URL:-"postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"}" +DATABASE_URL="${POSTGRESQL_URL:-"postgresql://${POSTGRESQL_USERNAME:-"mastodon"}:${POSTGRESQL_PASSWORD:-"mastodon"}@${POSTGRESQL_HOST:-"localhost"}:${POSTGRESQL_PORT:-"5432"}/${POSTGRESQL_DATABASE:-"mastodon"}"}" REDIS_HOST="${REDIS_HOST:-"localhost"}" REDIS_PORT="${REDIS_PORT:-"6379"}" diff --git a/start.sh b/start.sh index 93ad60c..5909347 100755 --- a/start.sh +++ b/start.sh @@ -2,20 +2,24 @@ echo "=>Configuring mastodon<=" bash /app/code/mastodon.env.template > /app/data/.env.production -if ! [ -f /app/data/.keys.env ]; then +if ! [ -d /app/data/system ]; then echo "=>First run, generating keys and setting up the DB<=" - export RANDFILE=/app/data/.rnd - echo -e "SECRET_KEY_BASE=$(openssl rand -hex 64)\nOTP_SECRET=$(openssl rand -hex 64)" > /app/data/.keys.env - source /app/data/.keys.env - HOME=/app/data bundle exec rake mastodon:webpush:generate_vapid_key >> /app/data/.keys.env + export RANDFILE=/tmp/.rnd + echo -e "SECRET_KEY_BASE=$(openssl rand -hex 64)\nOTP_SECRET=$(openssl rand -hex 64)" | \ + tee /app/data/.keys.env >> /app/data/.env.production + + HOME=/app/data bundle exec rake mastodon:webpush:generate_vapid_key | \ + tee -a /app/data/.keys.env >> /app/data/.env.production + SAFETY_ASSURED=1 HOME=/app/data bundle exec rails db:schema:load db:seed # the app writes to the following dirs: mkdir -p /app/data/system && chown cloudron:cloudron /app/data/system -fi -cat /app/data/.keys.env >> /app/data/.env.production +else + cat /app/data/.keys.env >> /app/data/.env.production +fi echo "=>Starting mastodon<="