Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
A quickstart to dockerizing your existing Rails-Postgresql application with Docker compose
Dockerfiles — Define the project
Create Dockerfile in the app’s root directory, the project is defined by adding the dependencies to the Dockerfile.
FROM ruby:2.5.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
Make sure add the specific version of ruby that your application uses
Docker-compose — Build the project
Now, create docker-compose.yml file in the root directory. This file does the magic of building your app from the current directory and running the pre-built postgresql image with the web app
version: '3'services: db: image: postgres volumes: - ./tmp/db:/var/lib/postgresql/data web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" depends_on: - db
Database.yml — Configure DB
Now, Change the host to ‘db’ in your database.yml file to point to the docker service
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password:
pool: 5
development:
<<: *default database: myapp_development
The following tasks can be completed be completed by running the respective commands
Build Docker Image
docker-compose build
DB — Create and Migrate
docker-compose run web rake db:create db:migrate
Accessing Rails Console
docker-compose exec web rails console
Start application
docker-compose up
You should now be able to browse to http://localhost:3000 and see your application running.
Dockerizing an existing Rails-Postgresql app with Docker compose was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.