[RUBY] Procédure pour introduire Docker dans l'environnement de développement des applications Rails existantes [Rails, MySQL, Docker]

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.

Préparation préalable

environnement

Ruby:2.5.3 Rails:5.2.4.3 MySQL:5.6 Docker:19.03.8 docker-compose:1.25.4

procédure

1. Ajoutez Dockerfile, docker-compose.yml au répertoire racine

add_file.png

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.

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.

2. Modifiez config / database.yml

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.

3. Démarrer le conteneur

$ 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.

référence

Recommended Posts

Procédure pour introduire Docker dans l'environnement de développement des applications Rails existantes [Rails, MySQL, Docker]
Présentez Docker à l'environnement de développement et à l'environnement de test des applications Rails et MySQL existantes
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Procédure de construction de l'environnement Docker "Rails 6 x MySQL 8" à partager avec les équipes
Procédure de migration de l'environnement de développement d'applications Rails vers Docker même si vous êtes inexpérimenté (Rails5 + MySQL8.0 + docker-compose)
Créer un environnement de développement pour Docker + Rails6 + Postgresql
SSL dans l'environnement local de Docker / Rails / puma
Méthode de construction de l'environnement et dépanneur au moment du développement conjoint (rails, docker et github)
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Rails sur la procédure de construction de l'environnement Docker
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)
Rails 6 (mode API) + création d'environnement MySQL Docker par docker-compose (pour Mac)
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Créer un environnement de débogage sur un conteneur - Créer un environnement de développement local pour les didacticiels Rails avec Docker -
Construire un environnement Rails 6 + MySQL avec Docker compose
[Construction de l'environnement Rails & Docker & MySQL] J'ai démarré le conteneur, mais je ne trouve pas MySQL ...?
Préparer l'environnement de contrôle de sécurité pour Rails 6
Exécutez Redmine dans l'environnement local de Windows10 Pro-Use Docker Desktop pour Windows
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
[Rails5.2] Prise en charge des pictogrammes de Mysql 5.7 dans Docker (changez le code de caractère en utf8mb4)
Exécutez l'environnement Docker Rails MySQL sur Heroku. concevoir et cacher l'API Twitter
Procédure JAVA pour le chargement de MySQL JDBC à l'aide d'Eclipse
[Rails] Création d'un environnement pour le développement d'applications Web
Créer un environnement de développement pour Docker, Java, vs code
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
Procédure de maintenance de l'environnement de développement WebSphere Liberty pour Windows
Que faire lorsque «Impossible de trouver» dans l’une des sources apparaît dans l’environnement de développement avec Docker × Rails × RSpec
[Rails] Comment supprimer les données MySQL de l'environnement de production après les avoir placées dans l'environnement de développement
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
Manuel de construction de l'environnement de développement stable pour "Rails6" avec "Docker-compose"
Rails5 + MySQL8.0 + Construction d'environnement de volumes de premier niveau avec docker-compose
À peu près le flux de développement d'applications Web avec Rails.
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
Faire de l'environnement de développement Laravel (Docker) le plus puissant du Japon
L'histoire de l'introduction d'un framework sans serveur très semblable à Rails "Ruby on Jets" dans l'environnement de production
Construction de l'environnement Rails Docker
[Rails] Développement avec MySQL
Un mémorandum de la procédure de définition du chemin de la variable d'environnement "JAVA_HOME"
Créer un environnement pour copier le livre "Test Driven Development"
Installer en spécifiant la version de Django dans l'environnement Docker
Environnement Docker Module Nuxt axios pour définir baseURL