diff --git a/Dockerfile b/Dockerfile index c0c72905..6c336f68 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,16 +9,15 @@ WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock - RUN bundle install + RUN yarn install --check-files +RUN yarn install COPY . /app # Add a script to be executed every time the container starts. -COPY entrypoint.sh /usr/bin/ -RUN chmod +x /usr/bin/entrypoint.sh -ENTRYPOINT ["entrypoint.sh"] +ENTRYPOINT ["/app/docker-entrypoint.sh"] EXPOSE 3000 diff --git a/docker-compose.yml b/docker-compose.yml index 5c53d50f..46c2ed91 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,6 @@ services: - ./tmp/db:/var/lib/postgresql/data web: build: . - command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/app ports: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 00000000..71b51d56 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# 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." + +# Use webpack to build JS and CSS. +echo "Compiling JS and CSS with webpack..." +./bin/webpack +echo "Webpack compilation completed." + +# Remove a potentially pre-existing server.pid for Rails. +rm -f /app/tmp/pids/server.pid + +# Then exec the container's main process (what's set as CMD in the Dockerfile). +exec "$@" \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh deleted file mode 100644 index eb40a5ea..00000000 --- a/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -e - -# Remove a potentially pre-existing server.pid for Rails. -rm -f /app/tmp/pids/server.pid - -# Then exec the container's main process (what's set as CMD in the Dockerfile). -exec "$@" \ No newline at end of file