[RUBY] Construction de l'environnement Rails Docker

supposition

Un mémorandum lors de la construction d'un environnement Docker avec des rails. Docker pour Mac installé

Sujet principal

rails
|--Dockerfile
|--Gemfile
|--Gemfile.lock
|--docker-compose.yml

Dockerfile.


FROM ruby:2.4.5
RUN apt-get update -qq && apt-get install -y build-essential nodejs
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app

Créer un fichier Docker et une image Docker (un modèle pour l'environnement virtuel de conteneur est créé)

Gemfile.


source 'https://rubygems.org'
gem 'rails', '5.0.0.1'

Gemfile (définissez le gem que vous voulez installer) → exécutez la commande d'installation du bundle → le gem est installé → le gem installé est décrit dans Gemfile.lock

docker-compose.yml


version: '3'
services:
  web:    #Définition du conteneur Rails
    build:  .  #Créer et utiliser une image basée sur le Dockerfile
    command: bundle exec rails s -p 3000 -b '0.0.0.0'  #Commande de démarrage des rails
    volumes:
      - .:/app
    ports:
      - 3000:3000  #<Numéro de port à publier>:<Transférer le numéro de port de destination à l'intérieur du conteneur>
    depends_on:
      - db  #Configurez le serveur MySQL pour qu'il démarre avant le démarrage de Rails
    tty: true
    stdin_open: true
  db:    #Définition du conteneur de serveur MySQL
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
volumes:
  db-volume:  #Par cette définition db sur PC-Un volume (zone de stockage de données) est créé avec le nom volume

Après avoir terminé les paramètres ci-dessus, créez un projet Rails dans le terminal

terminal.


rails$ docker-compose run web rails new . --force --database=mysql

docker-compose run web </ code> est une commande pour exécuter la commande suivante dans le conteneur du service Web.

--force </ code> est une option pour écraser un fichier existant -databace = mysql </ code> est une option pour mettre les paramètres pour utiliser MySQL

Une fois la construction terminée, modifiez le fichier de base de données utilisé par Rails

config/database.yml


#réduction

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: password  #Éditer
  host: db  #Éditer

#réduction

Après avoir terminé les réglages, entrez la commande suivante dans le terminal

terminal.


rails$ docker-compose up -d

Ce qui précède est la commande pour démarrer le conteneur (environnement virtuel) basé sur docker-compose.yml dans le répertoire courant.

Ensuite, puisque la base de données pour l'environnement de développement n'a pas été créée, créez-la avec la commande suivante

terminal.


rails$ docker-compose run web bundle exec rake db:create

La partie bundle exec rake </ code> exécute la commande rake installée dans l'environnement Rails. rake db: create </ code> crée une base de données pour Rails sur un serveur MySQL

Entrez localhost: 3000 dans le navigateur et lorsque l'écran Rails apparaît, vous avez terminé!

Recommended Posts