Comment créer une application dans Ruby on Rails à l'aide de Docker-compose avec référence à des livres, des vidéos et des articles Qiita J'ai eu du mal, alors j'ai essayé diverses choses et j'ai finalement réussi à le faire fonctionner, donc je vais laisser le fichier final et la procédure d'exécution.
Dockerfile
docker-compose.yml
Gemfile
Gemfile.lock
#Ruby dans le nom de l'image(Ver2.6.5)Spécifiez l'image de l'environnement d'exécution de
FROM ruby:2.6.5
#Mettez à jour la liste des packages et installez les packages requis pour créer l'environnement rails
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
#Créez un répertoire pour votre projet
RUN mkdir /myapp
#Définir sur le répertoire de travail
WORKDIR /myapp
#Copier dans le répertoire du projet
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
#Exécuter l'installation du bundle
RUN bundle install
#Copiez tout le contenu du contexte de construction dans myapp
COPY . /myapp
docker-compose.yml
version: '3'
services:
db:
#Obtenir une image de postgres
image: postgres
environment:
POSTGRES_USER: 'postgresql'
POSTGRES_PASSWORD: 'postgresql-pass'
restart: always
volumes:
- pgdatavol:/var/lib/postgresql/data
web:
#Créer et utiliser une image à partir d'un Dockerfile
build: .
#Exécuté au démarrage du conteneur
command: bundle exec rails s -p 3000 -b '0.0.0.0'
#Répertoire actuel/Lier la monture à myapp
volumes:
- .:/myapp
#Publier à 3000 et transférer à 3000 en conteneur
ports:
- "3000:3000"
#Démarrez le service db avant de démarrer le service Web
depends_on:
- db
#Créez un volume pgdatabol pour la persistance des données et montez la zone de données postgresql
volumes:
pgdatavol:
source 'https://rubygems.org'
gem 'rails', '5.2.4.2'
Gemfile.lock
docker-compose run web rails new . --force --database=postgresql
database.yml
default: &default
adapter: postgresql
encoding: unicode
# --------ajouter à--------
host: db
username: postgresql
password: postgresql-pass
# --------Jusque là--------
docker-compose up -d
docker-compose build --no-cache
docker-compose run web rails db:create
docker-compose run web bin/rails g scaffold User name:string
docker-compose run web bin/rails db:migrate
http://localhost:3000/users
[Je viens de démarrer Docker, je l'ai donc résumé de manière simple à comprendre](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)
Comment supprimer l'image et le conteneur Docker
[Création d'un conteneur Docker, démarrage et arrêt](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)
Solution pour l'installation du bundle pas dans le conteneur avec Docker
Recommended Posts