Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker

Erstellen Sie mit Rails6 + PostgreSQL mit Docker eine Umgebung

Als eigenes Memorandum werde ich einen Artikel darüber hinterlassen, wie man mit Rails 6 + PostgreSQL mit Docker eine Umgebung erstellt. Dieses Mal erstellen wir den App-Namen als purchase_app.

Jede zu erstellende Version der Umgebung

Verzeichnisaufbau

 .
 ├── Dockerfile
 ├── docker-compose.yml
 └── shopping_app
     ├── Gemfile
     └── Gemfile.lock

Erstellen einer Docker-Datei

Erstellen Sie zunächst eine Docker-Datei.

FROM ruby:2.7.2
ENV LANG C.UTF-8


RUN 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

RUN apt-get update -qq && \
    apt-get install -y build-essential \
            libpq-dev \
            nodejs \
            postgresql-client yarn

RUN mkdir /app
RUN mkdir /app/shopping_app

ENV APP_ROOT /app/shopping_app
WORKDIR $APP_ROOT

ADD ./shopping_app/Gemfile $APP_ROOT/Gemfile
ADD ./shopping_app/Gemfile.lock $APP_ROOT/Gemfile.lock

RUN bundle install

ADD . $APP_ROOT

Docker-compose.yml erstellen

Erstellen Sie docker-compose.yml. Diesmal ist der Port auf 1501 eingestellt.

version: '3'
services:
  postgres:
    image: postgres
    ports:
      - "3306:3306"
    volumes:
      - ./tmp/db:/var/lib/postgresql/data #Für MacOS
    environment:
      POSTGRES_USER: 'admin'
      POSTGRES_PASSWORD: 'admin-pass'
    restart: always
  app:
    build: .
    image: rails
    container_name: 'app'
    command: bundle exec rails s -p 1501 -b '0.0.0.0'
    ports:
      - "1501:1501"
    environment:
      VIRTUAL_PORT: 80
    volumes:
      - ./shopping_app:/app/shopping_app
    depends_on:
      - postgres
    restart: always

volumes:
  app_postgre:
    external: true

Gemfile erstellen

source 'https://rubygems.org'
gem 'rails', '6.0.3'

Sie können Gemfile.lock leer lassen.

Erstellen Sie einen Container, um eine App zu erstellen

$ docker-compose run app rails new . --force --database=postgresql --skip-bundle

Webpacker installieren

docker-compose run app rails webpacker:install

Datenbankerstellung und -konfiguration

Legen Sie die database.yml der erstellten App fest.

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

Bild erstellen

docker-compose build

Erstellen einer Datenbank

docker-compose run app rails db:create

Damit ist der Bau abgeschlossen. Starten Sie die App mit dem folgenden Befehl

docker-compose up

http://localhost:1501/ Wenn Sie darauf zugreifen, wird es auf dem folgenden Bildschirm angezeigt.

スクリーンショット 2020-10-18 20.16.20.png

das ist alles.

Recommended Posts

Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Erstellen Sie mit Docker eine Umgebung für Rails5 und postgresql, damit auch pgadmin verwendet werden kann
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
Zusammenfassung der Umgebungskonstruktion mit rvm und postgresql
So erstellen Sie eine Rails 6-Umgebung mit Docker
Super Anfänger baut Rails 6 + Postgresql-Umgebung mit Docker bis zum Ende
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
So installieren Sie Pry nach dem Erstellen einer Rails-Entwicklungsumgebung mit Docker
Aufbau der Rails Docker-Umgebung
Versuchen Sie, Express + PostgreSQL + Sequelize mit Docker zu erstellen [Teil 2]
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Versuchen Sie, Express + PostgreSQL + Sequelize mit Docker zu erstellen [Teil 1]
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
[Rails] So erstellen Sie eine Umgebung mit Docker
Ich habe eine Rails-Umgebung mit Docker und MySQL erstellt, aber ich war krank
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
Führen Sie Rails immer im Docker aus
Erstellen einer Docker-Umgebung mit WSL
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
[Docker] Wird immer mit Docker + Rails verwendet
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie die Node.js-Umgebung mit Docker Compose
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Umgebungsbau mit Docker für Anfänger
Hallo Welt mit Docker und C Sprache
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Konstruktionsverfahren für Rails on Docker-Umgebungen
Microservices mit Docker- und Cloud-Leistung
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
Erstellen einer Entwicklungsumgebung für Ruby on Rails mit Docker + VSCode (Remote Container)
Erstellen einer PostgreSQL-Umgebung mit Docker (vom Setup bis kurz vor der Entwicklung)
Erstellen einer Haskell-Umgebung mit Docker + VS-Code unter Windows 10 Home
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]