Während der Docker-Studiensitzung dachte ich, es wäre eine Verschwendung, das erstellte Repository so zu füllen, wie es ist, und schrieb es als Artikel. Ich hoffe es wird jemandem helfen.
https://github.com/yodev21/docker_tutorial_rails
Erstellen Sie die folgende Datei
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
Feste Datenbankkonfigurationsdatei für Rails-Projekt
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
docker-compose stop
docker-compose down
docker-compose run web bash
Verzeichnis verschieben
cd doc/golang/
FROM golang:1.9
RUN mkdir /echo
COPY main.go /echo
CMD ["go", "run", "/echo/main.go"]
docker image build -t example/echo:latest .
docker image ls
docker container run -d -p 9000:8080 example/echo:latest
curl http://localhost:9000
Recommended Posts