diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index ee8871e..0000000 --- a/.dockerignore +++ /dev/null @@ -1,15 +0,0 @@ -/Makefile -/LICENSE.txt -/Gemfile.lock -/extra/init.sh - -/app -/bin -/coverage -/gemfiles -/spec/dummy/db/*.sqlite3 -/spec/dummy/log -/spec/dummy/tmp -/spec/dummy/**/*_spec.rb - -/**/*.md diff --git a/Makefile b/Makefile index 253f9fd..8de8202 100644 --- a/Makefile +++ b/Makefile @@ -1,30 +1,43 @@ include extra/.env help: - @echo "Main targets: build / specs / up / server / specs / shell" + @echo -e "${COMPOSE_PROJECT_NAME} - Main project commands:\n\ + make up # starts the dev services (optional env vars: RUBY / RAILS / ACTIVEADMIN)\n\ + make specs # run the tests (after up)\n\ + make lint # run the linters (after up)\n\ + make server # run the server (after up)\n\ + make shell # open a shell (after up)\n\ + make down # cleanup (after up)\n\ + Example: RUBY=3.2 RAILS=7.1.0 ACTIVEADMIN=3.2.0 make up" -# Docker commands +# System commands build: - @rm -f Gemfile.lock + @rm -f Gemfile.lock spec/dummy/db/*.sqlite3 @docker compose -f extra/docker-compose.yml build -up: build +db_reset: + @docker compose -f extra/docker-compose.yml run --rm app bin/rails db:reset db:test:prepare + +up: build db_reset @docker compose -f extra/docker-compose.yml up -cleanup: +shell: + @docker compose -f extra/docker-compose.yml exec app bash + +down: @docker compose -f extra/docker-compose.yml down --volumes --rmi local --remove-orphans # App commands -server: - @docker compose -f extra/docker-compose.yml exec app bin/rails s -b 0.0.0.0 -p ${SERVER_PORT} - -specs: - @docker compose -f extra/docker-compose.yml exec app bin/rspec --fail-fast +console: + @docker compose -f extra/docker-compose.yml exec app bin/rails console lint: @docker compose -f extra/docker-compose.yml exec app bin/rubocop -shell: - @docker compose -f extra/docker-compose.yml exec app bash +server: + @docker compose -f extra/docker-compose.yml exec app bin/rails server -b 0.0.0.0 -p ${SERVER_PORT} + +specs: + @docker compose -f extra/docker-compose.yml exec app bin/rspec --fail-fast diff --git a/extra/Dockerfile b/extra/Dockerfile index 3fd30ae..e515d1e 100644 --- a/extra/Dockerfile +++ b/extra/Dockerfile @@ -6,7 +6,7 @@ ENV DEVEL=1 ENV LANG=C.UTF-8 RUN apt-get update -qq -RUN apt-get install -yqq --no-install-recommends build-essential chromium libyaml-dev nano netcat-traditional pkg-config +RUN apt-get install -yqq --no-install-recommends build-essential chromium less libyaml-dev nano netcat-traditional pkg-config ARG BUNDLER_VERSION RUN gem install bundler -v ${BUNDLER_VERSION} @@ -26,6 +26,6 @@ ENV ACTIVEADMIN_VERSION=$ACTIVEADMIN_VERSION WORKDIR /app COPY . /app RUN bundle install -RUN chown -R app:app /app/spec/dummy/db /usr/local/bundle +RUN mkdir -p /app/spec/dummy/db && chown -R app:app /app/spec/dummy/db /usr/local/bundle RUN ln -s /app/extra/.bashrc /home/app/.bashrc diff --git a/extra/Dockerfile.dockerignore b/extra/Dockerfile.dockerignore new file mode 100644 index 0000000..d8535e6 --- /dev/null +++ b/extra/Dockerfile.dockerignore @@ -0,0 +1,6 @@ +# Ignore everything but the required files for bundle install +/**/* + +!/*.gemspec +!/Gemfile +!/lib diff --git a/extra/dev_setup.sh b/extra/dev_setup.sh index 360b8ac..adea0b4 100755 --- a/extra/dev_setup.sh +++ b/extra/dev_setup.sh @@ -2,7 +2,7 @@ export DEVEL=1 -export RAILS_VERSION=8.0.2 +export RAILS_VERSION=7.2.2.1 export ACTIVEADMIN_VERSION=3.3.0 export RAILS_ENV=development diff --git a/extra/development.md b/extra/development.md index a68d6e8..0bb16ad 100644 --- a/extra/development.md +++ b/extra/development.md @@ -2,7 +2,7 @@ ### Dev setup -There 3 ways to interact with this project: +There are 2 ways to interact with this project: 1) Using Docker: @@ -24,19 +24,7 @@ RUBY=3.2 RAILS=7.1.0 ACTIVEADMIN=3.2.0 make up # For more commands please check the Makefile ``` -2) Using Appraisal: - -```sh -export RAILS_ENV=development -# Install dependencies: -bin/appraisal -# Run server (or any command): -bin/appraisal rails s -# Or with a specific configuration: -bin/appraisal rails80-activeadmin rails s -``` - -3) With a local setup: +2) With a local setup: ```sh # Dev setup (set the required envs): diff --git a/extra/docker-compose.yml b/extra/docker-compose.yml index 999255b..8879307 100644 --- a/extra/docker-compose.yml +++ b/extra/docker-compose.yml @@ -17,4 +17,3 @@ services: - ..:/app stdin_open: true tty: true - command: ${COMMAND:-extra/init.sh} diff --git a/extra/init.sh b/extra/init.sh deleted file mode 100755 index a17f21e..0000000 --- a/extra/init.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Setup database -bin/rails db:reset db:test:prepare - -# -sh