[RUBY] Verfahren zum Einführen von Docker in die Entwicklungsumgebung vorhandener Rails-Apps [Rails, MySQL, Docker]

Hallo. Dieses Mal habe ich das Verfahren zur Einführung von Docker in die Entwicklungsumgebung der vorhandenen Rails-Anwendung zusammengefasst. Ich habe noch nicht genug gelernt, daher würde ich mich freuen, wenn Sie auf Korrekturen oder Verbesserungen hinweisen könnten.

Vorbereitungen

Umgebung

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

Verfahren

1. Fügen Sie Dockerfile docker-compose.yml zum Stammverzeichnis hinzu

add_file.png

Erstellen Sie "Dockerfile" und "docker-compose.yml" direkt im Stammverzeichnis Ihrer vorhandenen Rails-App. Unten finden Sie den Inhalt jeder Datei.

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

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'

Eine ausführliche Erläuterung des Inhalts von "Dockerfile" und "docker-compose.yml" wurde in [diesem Artikel] zusammengefasst (https://qiita.com/hogehoge1234/items/28be70b674e24427491e).

2. Bearbeiten Sie 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

Ordnen Sie das "Passwort" und den "Host" von "config / database.yml" den in docker-compose.yml festgelegten Werten zu.

3. Container starten

$ docker-compose build
$ docker-compose up -d
$ docker-compose exec web rails db:create
$ docker-compose exec web rails db:migrate

Wenn Sie jetzt http: // localhost: 3000 besuchen, sollten Sie die App erfolgreich sehen können.

Referenz

Recommended Posts

Verfahren zum Einführen von Docker in die Entwicklungsumgebung vorhandener Rails-Apps [Rails, MySQL, Docker]
Führen Sie Docker in die Entwicklungs- und Testumgebung vorhandener Rails- und MySQL-Apps ein
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
Konstruktionsverfahren für die Docker-Umgebung "Rails 6 x MySQL 8" für die gemeinsame Nutzung mit Teams
Vorgehensweise zum Migrieren der Rails-Anwendungsentwicklungsumgebung zu Docker, auch wenn Sie unerfahren sind (Rails5 + MySQL8.0 + Docker-Compose)
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
SSL in der lokalen Umgebung von Docker / Rails / Puma
Umweltbauweise und Fehlerbehebung zum Zeitpunkt der gemeinsamen Entwicklung (Schienen, Docker und Github)
Für diejenigen, die MySQL für die Datenbank in der Umgebungskonstruktion von Rails6 ~ verwenden möchten.
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Konstruktionsverfahren für Rails on Docker-Umgebungen
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Verwenden Sie MailHog zum Überprüfen von E-Mails in der Entwicklungsumgebung (mit Docker).
Rails 6 (API-Modus) + MySQL Docker-Umgebungserstellung durch Docker-Compose (für Mac)
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
Erstellen Sie eine Debug-Umgebung auf einem Container. Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials.
[Aufbau der Rails & Docker & MySQL-Umgebung] Ich habe den Container gestartet, kann aber MySQL nicht finden ...?
Bereiten Sie die Sicherheitsüberprüfungsumgebung für Rails 6 vor
Führen Sie Redmine in der lokalen Umgebung von Windows 10 Pro-Use Docker Desktop für Windows aus
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
[Rails5.2] Unterstützung für Piktogramme von MySQL 5.7 in Docker (Zeichencode in utf8mb4 ändern)
Führen Sie die Docker-Umgebung Rails MySQL auf Heroku aus. Entwickeln und verstecken Sie die Twitter-API
JAVA-Prozedur zum Laden von MySQL JDBC mit Eclipse
[Rails] Erstellen einer Umgebung für die Entwicklung von Webanwendungen
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
Wartungsverfahren für die WebSphere Liberty für Windows-Entwicklungsumgebung
Was ist zu tun, wenn in einer der Quellen in der Entwicklungsumgebung mit Docker × Rails × RSpec "Nicht gefunden" angezeigt wird?
[Rails] So löschen Sie MySQL-Daten aus der Produktionsumgebung, nachdem Sie sie in die Entwicklungsumgebung gestellt haben
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
Konstruktionshandbuch für eine stabile Entwicklungsumgebung für "Rails6" mit "Docker-compose"
Rails5 + MySQL8.0 + Top-Level-Volume-Umgebungskonstruktion mit Docker-Compose
Etwa der Ablauf der Entwicklung von Webanwendungen mit Rails.
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
Machen Sie die stärkste Laravel-Entwicklungsumgebung (Docker) in Japan
Die Geschichte der Einführung eines sehr Rails-ähnlichen serverlosen Frameworks "Ruby on Jets" in die Produktionsumgebung
Aufbau der Rails Docker-Umgebung
[Rails] Entwicklung mit MySQL
Ein Memorandum der Pfadeinstellungsprozedur der Umgebungsvariablen "JAVA_HOME"
Erstellen einer Umgebung zum Kopieren des Buches "Test Driven Development"
Installieren Sie, indem Sie die Version von Django in der Docker-Umgebung angeben
Docker-Umgebung Nuxt-Axios-Modul zum Festlegen von baseURL