From 5cf71687c84d963162387fc9f953f289d81d047e Mon Sep 17 00:00:00 2001 From: riggraz Date: Mon, 26 Aug 2019 10:41:46 +0200 Subject: [PATCH] Improve docker automation --- Dockerfile | 1 - docker-compose.yml | 2 ++ docker-entrypoint.sh | 25 +++++++++++++++++-------- script/docker-build.sh | 1 + script/docker-run.sh | 1 + script/docker-update.sh | 1 + 6 files changed, 22 insertions(+), 9 deletions(-) create mode 100755 script/docker-build.sh create mode 100755 script/docker-run.sh create mode 100755 script/docker-update.sh diff --git a/Dockerfile b/Dockerfile index 6c336f68..e75abf34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,6 @@ COPY Gemfile.lock /app/Gemfile.lock RUN bundle install RUN yarn install --check-files -RUN yarn install COPY . /app diff --git a/docker-compose.yml b/docker-compose.yml index 46c2ed91..bba51b3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,8 @@ services: - ./tmp/db:/var/lib/postgresql/data web: build: . + environment: + - UPDATE=0 volumes: - .:/app ports: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 71b51d56..a48340f5 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -3,15 +3,24 @@ # Exit immediately if a command exits with a non-zero status. set -e -# Create database, load schema, run migrations and seed data in an idempotent way. -echo "Preparing database..." -rake db:prepare -echo "Database prepared." +if [ "$UPDATE" = 1 ]; then + echo "UPDATE (yarn packages, db preparation and webpack compilation)" -# Use webpack to build JS and CSS. -echo "Compiling JS and CSS with webpack..." -./bin/webpack -echo "Webpack compilation completed." + # Launch yarn install + echo "Launching yarn install..." + yarn install + echo "yarn install successfully executed." + + # Create database, load schema, run migrations and seed data in an idempotent way. + echo "Preparing database..." + rake db:prepare + echo "Database prepared." + + # Use webpack to build JS and CSS. + echo "Compiling JS and CSS with webpack..." + ./bin/webpack + echo "Webpack compilation completed." +fi # Remove a potentially pre-existing server.pid for Rails. rm -f /app/tmp/pids/server.pid diff --git a/script/docker-build.sh b/script/docker-build.sh new file mode 100755 index 00000000..95acceb3 --- /dev/null +++ b/script/docker-build.sh @@ -0,0 +1 @@ +docker-compose build \ No newline at end of file diff --git a/script/docker-run.sh b/script/docker-run.sh new file mode 100755 index 00000000..51f18420 --- /dev/null +++ b/script/docker-run.sh @@ -0,0 +1 @@ +docker-compose up "$@" \ No newline at end of file diff --git a/script/docker-update.sh b/script/docker-update.sh new file mode 100755 index 00000000..4633ba36 --- /dev/null +++ b/script/docker-update.sh @@ -0,0 +1 @@ +docker-compose run --rm -e UPDATE=1 web echo "Update completed." \ No newline at end of file