From 63a398fc7f30bf507f28152f569c2e73ec355702 Mon Sep 17 00:00:00 2001 From: Ryan W Date: Sun, 26 Sep 2021 14:32:21 -0700 Subject: [PATCH] Add docker bits --- Dockerfile | 10 ++++++++++ docker-compose.yml | 31 +++++++++++++++++++++++++++++++ entrypoint.sh | 11 +++++++++++ 3 files changed, 52 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100755 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..07abb4b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM ruby:3.0.2-bullseye + +WORKDIR /usr/src/app + +ENTRYPOINT ["./entrypoint.sh"] + +EXPOSE 3000 + +CMD ["bundle", "exec", "rails", "s", "-b", "0.0.0.0"] + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b0a8543 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +services: + web: + build: . + command: bash -c "rm -f tmp/pids/server.pid && bin/rails s -p 3000 -b '0.0.0.0'" + volumes: + - .:/usr/src/app + - bundle:/usr/local/bundle + ports: + - "3000:3000" + env_file: + - .env + depends_on: + - db + - redis + db: + image: postgres:13 + ports: + - "5432:5432" + environment: + - POSTGRES_PASSWORD=changeme + volumes: + - pg_data:/var/lib/postgresql/data + redis: + image: redis + volumes: + - redis_data:/data + +volumes: + pg_data: + redis_data: + bundle: diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..329394d --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +# Remove a potentially pre-existing server.pid for Rails. +rm -f /usr/src/app/tmp/pids/server.pid + +echo "bundle install..." +bundle check || bundle install --jobs 4 + +# Then exec the container's main process (what's set as CMD in the Dockerfile). +exec "$@"