Bonjour. Cette fois, j'ai résumé la procédure de création d'un environnement de développement d'applications Rails avec Docker. Je n'ai pas encore suffisamment étudié, alors j'apprécierais que vous puissiez signaler des corrections ou des améliorations.
Ruby: 2.5.8 Rails: 5.2.4.3 MySQL: 5.7.31 Docker: 19.03.8 Docker Compose: 1.25.4
terminal
$ mkdir test-app
Commencez par créer le répertoire racine de votre projet.
terminal
$ cd test-app
$ touch Dockerfile docker-compose.yml Gemfile Gemfile.lock
Créez quatre fichiers, Dockerfile
, docker-compose.yml
, Gemfile
et Gemfile.lock
, directement sous le répertoire racine créé.
Le contenu de chaque fichier est le suivant (laissez Gemfile.lock vide).
Dockerfile
FROM ruby:2.5
RUN apt-get update && apt-get install -y \
build-essential \
nodejs
WORKDIR /test-app
COPY Gemfile Gemfile.lock /test-app/
RUN 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:
- '.:/test-app'
tty: true
stdin_open: true
depends_on:
- db
links:
- db
db:
image: mysql:5.7
volumes:
- 'mysql-data:/var/lib/mysql'
environment:
- 'MYSQL_ROOT_PASSWORD=test-app'
Gemfile
source 'https://rubygems.org'
gem 'rails', '~>5.2'
terminal
$ docker-compose run --rm web rails new . --force --database=mysql --skip-bundle --skip-test
Exécutez rails new
dans un conteneur Web.
J'avais l'intention d'utiliser RSpec pour les tests cette fois, j'ai donc également ajouté --skip-test
.
Modifiez le config / database.yml
créé par le programme d'installation de Rails comme suit.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: test-app #docker-compose.yml MYSQL_ROOT_Définissez la valeur de PASSWORD
host: db #docker-compose.Correspondance avec le nom du service yml
development:
<<: *default
database: test-app_development
terminal
$ docker-compose up --build -d
$ docker-compose run --rm web rails db:create
Maintenant, lorsque vous visitez http: // localhost: 3000, vous devriez voir l'écran d'accueil de Rails.
Recommended Posts