Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)

Erstellen einer Docker-Datei

-#Kontext erstellen
% mkdir product-register
% cd product-register
-#Gemfile und Gemfile.Eine Sperre erstellen
% touch Gemfile Gemfile.lock
-#Gemfile bearbeiten
% vim Gemfile

product-register/Gemfile


source 'https://rubygems.org'
gem 'rails', '~>5.2'
-#Bearbeiten der Docker-Datei
% vim Dockerfile

product-register/Dockerfile


FROM ruby:2.5
RUN apt-get update && apt-get install -y && \
    buile-essential \
    libpq-dev \
    nodejs \
    postgresql-client \
    yarn
WORKDIR /product-register
COPY Gemfile Gemfile.lock /product-register/
RUN bundle install
-#Container erstellen
% docker build .

Beschreibung von docker-compose.yml

-# docker-compose.Yml bearbeiten
% vim docker-compose.yml

docker-compose.yml



version: '3'

services:
  web:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/product-register'
    tty: true
    stdin_open: true
-#Container starten
% docker-compose up -d
-#Bei Arbeiten in einem Container
% docker-compose exec web bash

Schienen einrichten

-#Da die Anwendungserstellung, die DB-Einstellung und das Bundle mit Dockerfile erfolgen - überspringen
# rails new . —force —database=postgresql —skip-bundle
-#Stellen Sie sicher, dass sich der Inhalt von Gemfile auf der Hostseite geändert hat
% cat Gemfile
-#Ich muss die Installation bündeln, also hör einmal auf
# exit
$ docker-compose down
-# docker-Wenn Sie komponieren, wird das vorherige Bild verwendet. Erstellen Sie es also erneut
$ docker-compose up —build -d
% docker-compose exec web bash
-#Starten Sie den Rails-Server
$ rails s -b 0.0.0.0

Ich kann eine Verbindung mit localhost: 3000 herstellen, erhalte jedoch eine Fehlerseite, da ich die Datenbank nicht festgelegt habe.

DB-Setup

config/database.yml


default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  user: postgres
  port: 5432
  password: <%= ENV.fetch("DATABASE_PASSWORD") %>
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

Da es aus Sicherheitsgründen nicht wünschenswert ist, das Kennwort direkt zu schreiben, rufen Sie es mit einer Umgebungsvariablen auf.

Änderungen an docker-compose.yml

docker-compose.yml


version: '3'
#Docker-Volume Hier werden Daten gespeichert
volumes: 
  db-data:

services:
  web:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/product-register'
#Die Einstellung der Umgebungsvariablen des Containers, ursprünglich das Kennwort, sollte nicht direkt geschrieben werden.
    environment:
      - 'DATABASE_PASSWORD=postgres'
    tty: true
    stdin_open: true
#Wird erstellt, sobald der Datenbankdienst erstellt wurde
    depends_on:
      - db
#Sie können über das Web auf db zugreifen
    links:
      - db
#Postgres Container
  db:
    image: postgres
#Host db-Daten in Daten speichern
    volumes:
      - 'db-data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_USER=postgres'
      - 'POSTGRES_PASSWORD=postgres'

Beginnen Sie mit Docker-Compose

% docker-compose up -d
-#Sie können sehen, dass die beiden Dienste ausgeführt werden
Creating product-register_db_1 ... done
Recreating product-register_web_1 ... done
% docker-compose exec web bash
-#DB-Erstellung
# rails db:create
Created database 'product-register_development'
Created database 'product-register_test'

Sie können sehen, dass die Datenbank erstellt wurde. Von hier aus können Sie Rails-Apps erstellen.

Erstellen Sie eine App und überprüfen Sie den Betrieb

-#Machen Sie eine einfache App mit Gerüst
# rails g scaffold product name:string price:integer vender:string
-#Definieren Sie die erstellte Tabelle
# rails db:migrate
-#Starten Sie den Server
# rails s -b 0.0.0.0

Sie können eine Verbindung mit localhost: 3000 herstellen und sehen, dass die Rails-Seite angezeigt wird. Sie können eine Verbindung zu Apps herstellen, die mit localhost: 3000 / products erstellt wurden.

Recommended Posts

Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Aufbau der Rails Docker-Umgebung
Erstellen Sie die Node.js-Umgebung mit Docker Compose
Umgebungsbau mit Docker für Anfänger
Konstruktionsverfahren für Rails on Docker-Umgebungen
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Aufbau einer Laravel-Entwicklungsumgebung mit Docker (Mac)
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
So erstellen Sie eine Rails 6-Umgebung mit Docker
Erstellen einer Entwicklungsumgebung für Ruby on Rails mit Docker + VSCode (Remote Container)
Konstruktionsverfahren für die Docker-Umgebung "Rails 6 x MySQL 8" für die gemeinsame Nutzung mit Teams
[Persönliches Memo] Ruby on Rails-Umgebungskonstruktion (Windows)
[Rails] So erstellen Sie eine Umgebung mit Docker
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
[Rails API x Docker] Einfache Umgebungskonstruktion mit Shell- und Funktionsprüfung mit Flutter
Rails Engineer Environment Construction Ruby2.7.1
Schienen Umgebungsbau Schienen5.2.1 ruby2.5.1 Catalina
Konstruktionshandbuch für eine stabile Entwicklungsumgebung für "Rails6" mit "Docker-compose"
Konstruktionsnotiz für die MySQL 5.7 (Docker) -Umgebung
Rails5 + MySQL8.0 + Top-Level-Volume-Umgebungskonstruktion mit Docker-Compose
Führen Sie Rails immer im Docker aus
Redmine (Docker) Umgebungskonstruktionsnotiz
Erstellen einer Docker-Umgebung mit WSL
Aufbau der Docker x Spring Boot-Umgebung
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
[Rails / MySQL] Aufbau einer Mac-Umgebung
[Docker] postgres, pgadmin4-Umgebungskonstruktion
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellung einer Datenanalyseumgebung mit Docker (persönliches Memorandum)
[Docker] Wird immer mit Docker + Rails verwendet
Erstellen Sie mit Docker eine Umgebung für Rails5 und postgresql, damit auch pgadmin verwendet werden kann
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen Sie mit Docker eine Node.js-Umgebung
Konstruktion der Laravel + Docker Laradock-Nutzungsumgebung
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz