[RUBY] Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql

Annahme

Wir haben Docker eingeführt, damit Teammitglieder, die keine Rails-Umgebung erstellt haben, ein Projekt problemlos lokal ausführen können, ohne eine Umgebung erstellen zu müssen. Da ich die Rails-Umgebung lokal erstelle, habe ich das Projekt lokal erstellt, damit sowohl Docker als auch local direct funktionieren können. Es wird davon ausgegangen, dass Docker bereits installiert ist.

Umgebung

Neues Projekt erstellen

$ mkdir myapp; cd $_
$ rails new . --skip-coffee --skip-turbolinks --database=postgresql

Einführung von dotenv-Rails zur Verwaltung von Umgebungsvariablen

Abhängig von der Umgebungsvariablen können Sie wählen, ob Sie sie mit Docker oder direkt lokal ausführen möchten.

Gemfile


gem 'dotenv-rails'

Installieren Sie gem

$ bundle install

Im Folgenden finden Sie ein Beispiel für das Festlegen von Umgebungsvariablen bei der Ausführung mit Docker.

.env


DATABASE_HOST=db
DATABASE_USER=postgres
DATABASE_PASSWORD=secret

Setzen Sie DATABASE_HOST = localhost so, dass es direkt lokal ausgeführt wird.

Dateierstellung / -bearbeitung für Docker

docker-compose.yml


version: '3'
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    ports:
      - "5433:5432"
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'secret'
      POSTGRES_DB: 'db'

  webpacker:
    build: .
    command: bundle exec bin/webpack-dev-server
    volumes:
      - .:/myapp
    ports:
      - "8080:8080"

  web:
    build: .
    command: /bin/sh -c "rm -f /myapp/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
      - webpacker

dockerfile


FROM ruby:2.7.1
 
ENV LANG C.UTF-8

#Installieren Sie die erforderlichen Bibliotheken
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

#Installation des Garnpaket-Management-Tools
RUN apt-get update && apt-get install -y curl apt-transport-https wget && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && apt-get install -y yarn

#Arbeitsverzeichniseinstellungen
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
EXPOSE  3000

Die Einstellungen "Host", "Benutzername" und "Passwrd" wurden zu "database.yml" hinzugefügt

/config/database.yml


:Kürzung

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

:Kürzung

Bildkonstruktion

$ docker-compose build

Paketinstallation

$ docker-compose run --rm web bin/yarn install

Datenbankerstellung

$ docker-compose run --rm web rails db:create

Anlaufen

$ docker-compose up

Sie können auf http: // localhost: 3000 / zugreifen.

Beim direkten Umzug vor Ort

Bearbeiten Sie .env und starten Sie es mit Garninstallation, Schienen db: create, Schienen s.

Recommended Posts

Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Mac-Version).
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen einer Java-Entwicklungsumgebung (für Mac)
Erstellen Sie eine Unity-Entwicklungsumgebung auf Docker
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
So beenden Sie Docker für Mac und erstellen eine Docker-Entwicklungsumgebung mit Ubuntu + Vagrant
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Erstellen Sie eine WAS-Ausführungsumgebung aus Docker
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
Erstellen Sie eine Java-Entwicklungsumgebung auf dem Mac
Erstellen Sie eine Ultra96v2-Entwicklungsumgebung auf Docker 1
So erstellen Sie eine Rails 6-Umgebung mit Docker
Erstellen Sie eine Entwicklungsumgebung, in der die Haltepunkte von Ruby on Rails unter Windows funktionieren
Erstellen Sie eine Browsertestumgebung mit Capybara in der Docker-Entwicklungsumgebung
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant
Erstellen Sie mit Docker-Introduce Bootstrap und Font Awesome with Webpack- eine lokale Entwicklungsumgebung für Rails-Tutorials.
Aufbau der Rails Docker-Umgebung
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen einer Entwicklungsumgebung für Java-Webanwendungen mit Docker für Mac Teil1
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
[Docker] So erstellen Sie eine virtuelle Umgebung für Rails- und Nuxt.js-Apps
Erstellen Sie einen Container für Docker x Laravel phpMyAdmin
[Win10] Erstellen Sie eine JSF-Entwicklungsumgebung mit NetBeans
[Rails] So erstellen Sie eine Umgebung mit Docker
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
Erstellen Sie eine Docker-Umgebung für Oracle 11g XE
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie mit Docker CE für Windows eine Webanwendungsentwicklungsumgebung, die Java, MySQL und Redis verwendet
Erstellen einer Doker-basierten Entwicklungsumgebung unter Windows 10 Home 2020 Version 1 Bis WSL2-basierte Docker-Konstruktion
Verfahren zum Einführen von Docker in die Entwicklungsumgebung vorhandener Rails-Apps [Rails, MySQL, Docker]
Erstellen Sie eine Entwicklungsumgebung, um Ruby on Jets + React-Apps mit Docker zu erstellen