[RUBY] Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen

Einführung

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.

Arbeitsablauf

Dateierstellung

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


Schienenanwendung erstellen

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--------

Starten Sie im Trennmodus (Hintergrund)

docker-compose up -d

Was tun, wenn die Bundle-Installation nicht berücksichtigt wird?

docker-compose build --no-cache

Befehl zur Datenbankerstellung

docker-compose run web rails db:create

Erstellen Sie eine einfache Anwendung mit Scaffold

docker-compose run web bin/rails g scaffold User name:string
docker-compose run web bin/rails db:migrate

http://localhost:3000/users

Referenz-URL

[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)

Ich sollte ein Bundle mit Docker Compose + Rails im Image installieren, aber ich erhalte eine Fehlermeldung, wenn es kein Juwel gibt.

Lösung für Docker nicht im Container installieren

Recommended Posts

Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Ich habe versucht, eine einfache Gesichtserkennungs-Android-Anwendung mit OpenCV zu erstellen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Rails6 Ich habe versucht, Docker in eine vorhandene Anwendung einzuführen
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Vorbereiten der Erstellung einer Rails-Anwendung
[Rails] Ich habe versucht, die Anwendung zu löschen
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
[Unity] Ich habe mit NWPathMonitor ein natives Plug-In UniNWPathMonitor erstellt
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Ich möchte eine Webanwendung entwickeln!
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Ich habe versucht, ein Fenster mit Bootstrap 3 zu erstellen"
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
[iOS] Ich habe versucht, mit Swift eine insta-ähnliche Verarbeitungsanwendung zu erstellen
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, die Sitzung in Rails zu organisieren
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
Ich habe versucht, eine LINE-Klon-App zu erstellen
[Rails] Ich habe eine Entwurfsfunktion mit enum erstellt
Ich habe versucht, AdoptOpenJDK 8 zu erstellen (zusätzlich: Amazon Corretto 8)
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, eine Website zu entwickeln, um Ausgaben zu erfassen.
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Ich möchte in der Lage sein, Dateien mit refile mit administrate [rails6] zu lesen.
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
[Rails] So stellen Sie über den HTTP-Client eine Verbindung zu einer externen API her (ich habe versucht, eine Verbindung zur Qiita-API herzustellen)
Ich habe versucht, eine Datenbankverbindung in der Android-Entwicklung zu verwenden
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
Ich habe versucht, ein einfaches Spiel mit Javafx zu machen ① "Lass uns Glücksspiel finden" (unvollendete Version ②)
Implementieren Sie ein Reservierungssystem mit Rails und einfachem Kalender! Fügen wir datetime eine Validierung hinzu!
Ich habe versucht, eine Ramen-Shop-Sharing-Website zu entwickeln.
Ich habe versucht, Gson zu benutzen
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich möchte ein kleines Symbol in Rails verwenden
Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
Ich habe versucht, das Migration Toolkit für Anwendungsbinärdateien zu verwenden
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen