- Ruby 2.6.6
- Rails 6.1.3.1
- Install docker
- Clone the project
- Checkout staging branch
- Install Ruby Gems
docker-compose -f docker/docker-compose.local.yml run --rm app bin/bundle install
- Create databases
docker-compose -f docker/docker-compose.local.yml run --rm app bin/rails -e test db:create
docker-compose -f docker/docker-compose.local.yml run --rm app bin/rails -e development db:create
- Run migrations
docker-compose -f docker/docker-compose.local.yml run --rm app bin/rails -e test db:migrate
docker-compose -f docker/docker-compose.local.yml run --rm app bin/rails -e development db:migrate
- create a
.env
file in the docker folder- DFB_DB_PASS => Password for the PostgreSQL user (set to anything, this variable creates and uses)
- BACKUP_EMAIL => Email for backup script success
- SMTP_USER => SMTP username
- SMTP_PASS => SMTP password
- DFB_COMMENTS_EMAIL_DEV => emails that comments and reports go to
docker-compose -f docker/docker-compose.local.yml run --rm app rails test
- Populate development database with recent backup
- Copy image foldes from the same backup into
public/system/
- Start the server
docker-compose -f docker/docker-compose.local.yml run --rm --service-ports app bin/rails server -b 0.0.0.0
- Navigate to
http://localhost:3000
Set the following secrets in Github Actions
- DEPLOY_CONT_PROD - Caontainer name
- DEPLOY_CONT_STAGING - Container name
- DEPLOY_HOME - Home fold of the deployment host user
- DEPLOY_HOST - Address of host deployment machine
- DEPLOY_KEY - SSH key
- DEPLOY_PORT - SSH Port
- DEPLOY_USER - User on the host machine
- DEPLOY_PATH_PROD - Path to the volume
- DEPLOY_PATH_STAGING - Path to the volume
docker build -f docker/Dockerfile.prod -t rails:1.4 ./docker
docker save rails:1.4 -o docker/rails_1.4.tar
- Upload to portainer through UI for use
- A Postgres instance will be required
- Create containers using the latest base image(currently
rails:1.5
) - Set the following environment variables for container:
- DFB_DB_PASS
- DFB_DB_USER
- DFB_DB_NAME
- DFB_DB_HOST
- DFB_DB_PORT
- DFB_SECRET_KEY_BASE -> checkout rails docs for instructions how to generate
- PASSENGER_APP_ENV -> production or staging
- RAILS_ENV -> production or staging
- Probably don't need both of these
- SMTP_USER
- SMTP_PASS
- DFB_COMMENTS_EMAIL_PRODUCTION -> Can be multiple
Local
docker-compose -f docker/docker-compose.local.yml exec app /bin/bash
bin/rails console
Production
sudo docker exec -it <CONTAINER_NAME> /bin/bash
bin/rails console
User.create!(email: "guy@gmail.com", password: "111111", password_confirmation: "111111")
BiographyAuthor.create!( biography_id: 496, author_id: 148, author_position: 1 )
- Update the version in Gemfile
- in the local docker container run
bundle update rails
- commit and push the changes to Gemfile and Gemfile.lock