[RUBY] Aufbau der Rails Docker-Umgebung

Annahme

Ein Memorandum beim Erstellen einer Docker-Umgebung mit Schienen. Docker für Mac installiert

Hauptthema

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

Erstellen Sie eine Docker-Datei und ein Docker-Image (eine Vorlage für die virtuelle Containerumgebung wird erstellt)

Gemfile.


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

Gemfile (definieren Sie den Gem, den Sie installieren möchten) → Führen Sie den Bundle-Installationsbefehl aus → Gem ist installiert → Installierter Gem wird in Gemfile.lock beschrieben

docker-compose.yml


version: '3'
services:
  web:    #Schienencontainerdefinition
    build:  .  #Erstellen und Verwenden eines Bildes basierend auf der Docker-Datei
    command: bundle exec rails s -p 3000 -b '0.0.0.0'  #Rails Startbefehl
    volumes:
      - .:/app
    ports:
      - 3000:3000  #<Zu veröffentlichende Portnummer>:<Übertragen Sie die Zielportnummer in den Container>
    depends_on:
      - db  #Stellen Sie den MySQL-Server so ein, dass er zuerst startet, bevor Rails gestartet wird
    tty: true
    stdin_open: true
  db:    #Definition des MySQL-Servercontainers
    image: mysql:5.7
    volumes:
      - db-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
volumes:
  db-volume:  #Nach dieser Definition db auf PC-Mit dem Namen Volume wird ein Volume (Datenhaltebereich) erstellt

Erstellen Sie nach Abschluss der obigen Einstellungen ein Rails-Projekt im Terminal

terminal.


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

docker-compose run web </ code> ist ein Befehl zum Ausführen des folgenden Befehls im Container des Webdienstes.

--force </ code> ist eine Option zum Überschreiben einer vorhandenen Datei -databace = mysql </ code> ist eine Option, um Einstellungen für die Verwendung von MySQL vorzunehmen

Bearbeiten Sie nach Abschluss der Erstellung die von Rails verwendete Datenbankdatei

config/database.yml


#Kürzung

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

#Kürzung

Geben Sie nach Abschluss der Einstellungen den folgenden Befehl in das Terminal ein

terminal.


rails$ docker-compose up -d

Das obige ist der Befehl zum Starten des Containers (virtuelle Umgebung) basierend auf docker-compose.yml im aktuellen Verzeichnis.

Da die Datenbank für die Entwicklungsumgebung nicht erstellt wurde, erstellen Sie sie mit dem folgenden Befehl

terminal.


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

Der Teil bundle exec rake </ code> führt den in der Rails-Umgebung installierten Befehl rake aus. rake db: create </ code> erstellt eine Datenbank für Rails auf einem MySQL-Server

Geben Sie localhost: 3000 in den Browser ein und wenn der Rails-Bildschirm angezeigt wird, sind Sie fertig!

Recommended Posts