Bonjour. Cette fois, j'ai résumé la procédure pour introduire Docker dans l'environnement de développement de l'application Rails existante. Je n'ai pas encore suffisamment étudié, alors j'apprécierais que vous puissiez signaler des corrections ou des améliorations.
Ruby:2.5.3 Rails:5.2.4.3 MySQL:5.6 Docker:19.03.8 docker-compose:1.25.4
Créez Dockerfile
et docker-compose.yml
directement sous le répertoire racine de votre application Rails existante.
Voici le contenu de chaque fichier.
Dockerfile
FROM ruby:2.5.3
RUN apt-get update && apt-get install -y \
build-essential \
nodejs
WORKDIR /kakeibo
COPY Gemfile Gemfile.lock /kakeibo/
RUN bundle install
--La partie FROM ruby: 2.5.3
correspond à la version Ruby de l'application.
--EXÉCUTER apt-get update && apt-get install -y ~
pour installer les paquets requis.
--Créez un dossier dans le conteneur avec WORKDIR / kakeibo
.
COPY Gemfile Gemfile.lock / kakeibo /
, puis exécutez bundle install
.docker-compose.yml
version: '3'
volumes:
mysql-data:
services:
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
ports:
- '3000:3000'
volumes:
- '.:/kakeibo'
tty: true
stdin_open: true
depends_on:
- db
links:
- db
db:
image: mysql:5.6
volumes:
- 'mysql-data:/var/lib/mysql'
environment:
- 'MYSQL_ROOT_PASSWORD=password'
Une explication détaillée du contenu de Dockerfile
et docker-compose.yml
a été résumée dans cet article.
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: password
host: db
development:
<<: *default
database: kakeibo_development
Faites correspondre le «mot de passe» et «l'hôte» de «config / database.yml» aux valeurs définies dans docker-compose.yml.
$ docker-compose build
$ docker-compose up -d
$ docker-compose exec web rails db:create
$ docker-compose exec web rails db:migrate
Maintenant, lorsque vous visitez http: // localhost: 3000, vous devriez pouvoir voir votre application avec succès.
Recommended Posts