Erstellen einer Anwendung in Ruby on Rails mithilfe von Docker-Compose unter Bezugnahme auf Bücher, Videos und Qiita-Artikel Ich hatte es schwer, also habe ich verschiedene Dinge ausprobiert und es endlich zum Laufen gebracht, also werde ich die endgültige Datei und das Ausführungsverfahren verlassen.
Dockerfile
docker-compose.yml
Gemfile
Gemfile.lock
#Ruby im Bildnamen(Ver2.6.5)Geben Sie das Image der Ausführungsumgebung von an
FROM ruby:2.6.5
#Aktualisieren Sie die Liste der Pakete und installieren Sie die Pakete, die zum Erstellen der Rails-Umgebung erforderlich sind
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
#Erstellen Sie ein Verzeichnis für Ihr Projekt
RUN mkdir /myapp
#Auf Arbeitsverzeichnis setzen
WORKDIR /myapp
#In Projektverzeichnis kopieren
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
#Bundle-Installation ausführen
RUN bundle install
#Kopieren Sie den gesamten Inhalt des Build-Kontexts nach myapp
COPY . /myapp
docker-compose.yml
version: '3'
services:
db:
#Holen Sie sich ein Bild von Postgres
image: postgres
environment:
POSTGRES_USER: 'postgresql'
POSTGRES_PASSWORD: 'postgresql-pass'
restart: always
volumes:
- pgdatavol:/var/lib/postgresql/data
web:
#Erstellen und verwenden Sie ein Image aus einer Docker-Datei
build: .
#Wird ausgeführt, wenn der Container gestartet wird
command: bundle exec rails s -p 3000 -b '0.0.0.0'
#Aktuelles Verzeichnis/Binden Sie die Halterung an myapp
volumes:
- .:/myapp
#Veröffentlichen Sie bei 3000 und übertragen Sie auf 3000 im Behälter
ports:
- "3000:3000"
#Starten Sie den Datenbankdienst, bevor Sie den Webdienst starten
depends_on:
- db
#Erstellen Sie ein pgdatabol-Volume für die Datenpersistenz und hängen Sie den Datenbereich von postgresql ein
volumes:
pgdatavol:
source 'https://rubygems.org'
gem 'rails', '5.2.4.2'
Gemfile.lock
docker-compose run web rails new . --force --database=postgresql
database.yml
default: &default
adapter: postgresql
encoding: unicode
# --------hinzufügen--------
host: db
username: postgresql
password: postgresql-pass
# --------Bisher--------
docker-compose up -d
docker-compose build --no-cache
docker-compose run web rails db:create
docker-compose run web bin/rails g scaffold User name:string
docker-compose run web bin/rails db:migrate
http://localhost:3000/users
[Ich habe gerade Docker gestartet und es daher leicht verständlich zusammengefasst](https://qiita.com/gold-kou/items/44860fbda1a34a001fc1#%E3%83%9B%E3%82%B9%E3%83%88% E5% 9E% 8B% E4% BB% AE% E6% 83% B3% E5% 8C% 96)
So löschen Sie Docker-Image und -Container
[Erstellen eines Docker-Containers, Starten und Stoppen](https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53#5%E3%82%B3%E3%83%B3%E3%83%86%E3%83% 8A% E3% 81% AE% E5% 81% 9C% E6% AD% A2)
Lösung für Docker nicht im Container installieren
Recommended Posts