Lors de la session d'étude Docker, j'ai pensé que ce serait un gaspillage de remplir le référentiel créé tel quel, alors je l'ai écrit sous forme d'article. J'espère que cela sera utile à quelqu'un.
https://github.com/yodev21/docker_tutorial_rails
Créez le fichier suivant
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 de pgdatabol pour la persistance des données et montez la zone de données de postgresql
volumes:
pgdatavol:
source 'https://rubygems.org'
gem 'rails', '5.2.4.2'
Gemfile.lock
docker-compose run web rails new . --force --database=postgresql
Fichier de configuration de base de données fixe utilisé pour le projet de rails
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
docker-compose stop
docker-compose down
docker-compose run web bash
Déplacer le répertoire
cd doc/golang/
FROM golang:1.9
RUN mkdir /echo
COPY main.go /echo
CMD ["go", "run", "/echo/main.go"]
docker image build -t example/echo:latest .
docker image ls
docker container run -d -p 9000:8080 example/echo:latest
curl http://localhost:9000
Recommended Posts