[RUBY] Créer un environnement de développement pour Docker + Rails6 + Postgresql

supposition

Nous avons introduit Docker afin que les membres de l'équipe qui n'ont pas créé d'environnement Rails puissent facilement exécuter un projet localement sans avoir à créer un environnement. Puisque je construis l'environnement Rails localement, j'ai créé le projet localement afin que Docker et local direct puissent fonctionner. On suppose que Docker est déjà installé.

environnement

Créer un nouveau projet

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

Introduction de dotenv-rails pour gérer les variables d'environnement

En fonction de la variable d'environnement, vous pouvez choisir de l'exécuter avec Docker ou directement localement.

Gemfile


gem 'dotenv-rails'

Installer la gemme

$ bundle install

Voici un exemple de définition de variables d'environnement lors de l'exécution avec Docker.

.env


DATABASE_HOST=db
DATABASE_USER=postgres
DATABASE_PASSWORD=secret

Définissez DATABASE_HOST = localhost pour qu'il s'exécute directement localement.

Création / édition de fichiers pour 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

#Installez les bibliothèques requises
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

#installation de l'outil de gestion des paquets de fils
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

#Paramètres du répertoire de travail
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
EXPOSE  3000

Ajout des paramètres host, ʻusername et passwrd à database.yml`

/config/database.yml


:réduction

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

:réduction

construction d'image

$ docker-compose build

Installation du package

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

Création de base de données

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

Commencez

$ docker-compose up

Vous pouvez accéder à http: // localhost: 3000 /.

Lors d'un déménagement directement localement

Editez .env et lancez-le avec yarn install, rails db: create, rails s.

Recommended Posts

Créer un environnement de développement pour Docker + Rails6 + Postgresql
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Créer un environnement de développement pour Docker, Java, vs code
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
Créer un environnement de développement PureScript avec Docker
Créer un environnement de développement Wordpress avec Docker
Construction d'un environnement de développement simple Docker + Django
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Créez rapidement un environnement de développement WordPress avec Docker
Construction de l'environnement de développement Simple Docker Compose + Django
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Ubuntu)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Mac)
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Essayez de créer un environnement de développement Java à l'aide de Docker
Créer un environnement Node.js avec Docker
Création d'un environnement de développement Java (pour Mac)
Créer un environnement de développement Unity sur docker
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Construction de Rails 6 et environnement PostgreSQL avec Docker
Créer un environnement d'exécution WAS à partir de Docker
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Créer un environnement de développement Java sur Mac
Créer un environnement de développement Ultra96v2 sur Docker 1
Comment créer un environnement Rails 6 avec Docker
Créez un environnement de développement où les points d'arrêt de Ruby on Rails fonctionnent sous Windows
Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
Créez un environnement de développement local pour les didacticiels Rails avec Docker-Introduisez Bootstrap et Font Awesome avec Webpack-
Construction de l'environnement Rails Docker
Créer un environnement Laravel / Docker avec VSCode devcontainer
Création d'un environnement de développement pour les applications Web Java avec Docker pour Mac Part1
[Copier et coller] Créez un environnement de développement Laravel avec Docker Compose, partie 2
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
Créer un conteneur pour Docker x Laravel phpMyAdmin
[Win10] Créer un environnement de développement JSF avec NetBeans
[Rails] Comment créer un environnement avec Docker
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
Créer un environnement Docker pour Oracle 11g XE
Créer un environnement de développement Spring Boot avec docker
Créer un environnement de développement Java avec VS Code
Créez un environnement de développement d'applications Web qui utilise Java, MySQL et Redis avec Docker CE pour Windows
Créer un environnement de développement basé sur Doker sur Windows10 Famille 2020 ver.Partie 1 Jusqu'à la construction de Docker basé sur WSL2
Procédure pour introduire Docker dans l'environnement de développement des applications Rails existantes [Rails, MySQL, Docker]
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker