Hallo. Dieses Mal habe ich das Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker zusammengefasst. Ich habe noch nicht genug gelernt, daher würde ich mich freuen, wenn Sie auf Korrekturen oder Verbesserungen hinweisen könnten.
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
Erstellen Sie zunächst das Stammverzeichnis Ihres Projekts.
terminal
$ cd test-app
$ touch Dockerfile docker-compose.yml Gemfile Gemfile.lock
Erstellen Sie vier Dateien, "Dockerfile", "docker-compose.yml", "Gemfile" und "Gemfile.lock", direkt unter dem erstellten Stammverzeichnis. Der Inhalt jeder Datei lautet wie folgt: (Lassen Sie Gemfile.lock leer.)
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
Führen Sie "Rails New" in einem Webcontainer aus. Ich hatte vor, dieses Mal RSpec zum Testen zu verwenden, also habe ich auch "--skip-test" hinzugefügt.
Bearbeiten Sie die vom Rails-Setup erstellte config / database.yml
wie folgt.
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_Stellen Sie den Wert von PASSWORD ein
host: db #docker-compose.Übereinstimmung mit dem Namen des yml-Dienstes
development:
<<: *default
database: test-app_development
terminal
$ docker-compose up --build -d
$ docker-compose run --rm web rails db:create
Wenn Sie jetzt http: // localhost: 3000 besuchen, sollte der Rails-Startbildschirm angezeigt werden.