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