[RUBY] Rails5 + MySQL8.0 + Construction d'environnement de volumes de premier niveau avec docker-compose

Rails5 + Construction de l'environnement MySQL sur Docker par Docker-compose trop poli (Docker pour Mac) C'est presque le même contenu que. Alors si vous voulez en savoir plus, allez-y. C'est un peu différent, comme différentes versions de mysql ou l'utilisation de volumes de premier niveau.

environnement

$ mkdir rails_docker
$ cd rails_docker
$ vi Dockerfile

Dockerfile


FROM ruby:2.7.1

RUN apt-get update -qq && \
    apt-get install -y build-essential \
                       libpq-dev \
                       nodejs \
    && rm -rf /var/lib/apt/lists/*

RUN mkdir /recruit_web
ENV APP_ROOT /recruit_web
WORKDIR $APP_ROOT

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

RUN bundle install
ADD . $APP_ROOT
$ vi Gemfile

Gemfile


source 'https://rubygems.org'
gem 'rails',  '~> 5.2.4', '>= 5.2.4.4'
$ touch Gemfile.lock
$ vi docker-compose.yml

docker-compose.yml


version: '3'
services:
  db:
    image: mysql:8.0.21
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - rails_docker_network
    environment:
        MYSQL_DATABASE: root
        MYSQL_ROOT_PASSWORD: password
    # mysql8.0 plug-in d'authentification(caching_sha2_password)Mysql_native_Changer de mot de passe
    command: --default-authentication-plugin=mysql_native_password
    container_name: rails_db_container
  web:
    build: .
    depends_on:
      - db
    command: rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/recruit_web
    networks:
      - rails_docker_network
    ports:
      - "3000:3000"
    container_name: rails_web_container

volumes:
  db_data:

networks:
  rails_docker_network:
    name: rails_docker_network
$ docker-compose run web rails new . --force --database=mysql --skip-bundle
$ vi /confing/database.yml

database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root #ajouter à
  password: password #ajouter à
  host: db #ajouter à
$ docker-compose build
$ docker-compose up -d

Si vous exécutez la commande suivante, une base de données sera créée et vous pourrez y accéder sur localhost: 3000.

$ docker-compose run web rails db:create

Où ça se coince

docker-compose.yml


version: '3'
services:
  db:
    image: mysql:8.0.21
    volumes:
      - db_data:/var/lib/mysql
    environment:
        MYSQL_DATABASE: root
        MYSQL_ROOT_PASSWORD: password
    #J'ai eu une erreur si j'ai spécifié ce qui suit
    ports:
      - "3306:3306 

  web:
    build: .
    command: rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app_sample
    ports:
      - "3000:3000"
    #J'ai eu une erreur si j'ai spécifié ce qui suit(non recommandé+Je n'en avais pas besoin car le nom serait résolu sans lui)
    links:
      - db

volumes:
  db_data:

Pour une raison quelconque, si vous spécifiez le port public des liens et de la base de données

Mysql2::Error::ConnectionError: Access denied for user 'root'@'172.19.0.4' (using password: YES)

J'étais en colère et j'ai trébuché considérablement. .. ..

Pour le moment, j'ai réalisé que je n'avais pas besoin du port et je l'ai supprimé. À partir du document, les liens semblent pouvoir résoudre le nom même s'il n'est pas obsolète, alors supprimez-le https://docs.docker.com/compose/networking/

J'apprécierais s'il y avait des améliorations.

Recommended Posts

Rails5 + MySQL8.0 + Construction d'environnement de volumes de premier niveau avec docker-compose
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
[Docker] Construction de l'environnement Rails 5.2 avec docker
[Rails / MySQL] Construction de l'environnement Mac
Manuel de construction de l'environnement de développement stable pour "Rails6" avec "Docker-compose"
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Construire un environnement Rails 6 + MySQL avec Docker compose
Construction de l'environnement du serveur API Rails à l'aide de docker-compose
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Procédure de construction de l'environnement Docker "Rails 6 x MySQL 8" à partager avec les équipes
Rails & React & Webpacker & Manuel de construction de l'environnement MySQL
Erreur lors du déploiement de rails5 + Mysql sur heroku avec Docker-compose
Construction de l'environnement Rails Docker
[Rails] Développement avec MySQL
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
Ingénieur Rails Environnement Construction Ruby2.7.1
Rails6 (MySQL, environnement Ubuntu, Cloud9)
Construction de l'environnement des rails Rails5.2.1 ruby2.5.1 Catalina
Mémo de construction de l'environnement MySQL 5.7 (Docker)
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
Créer un environnement Node.js avec Docker Compose
Construction d'environnement avec Docker pour les débutants
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Rails 6 (mode API) + création d'environnement MySQL Docker par docker-compose (pour Mac)
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Mémo de construction de l'environnement Ruby on Rails 6.0
Rails sur la procédure de construction de l'environnement Docker
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Flux de construction de l’environnement Rails problématiques [Windows 10]
[Rails] Construction de l'environnement d'instance AWS EC2
J'ai construit un environnement de rails avec docker et mysql, mais j'étais malade
[Construction de l'environnement] Rails + MySQL + Docker (les débutants peuvent également l'utiliser en 30 minutes!)
[Construction de l'environnement Rails & Docker & MySQL] J'ai démarré le conteneur, mais je ne trouve pas MySQL ...?
[Rails API x Docker] Construction facile de l'environnement avec contrôle de la coque et du fonctionnement avec Flutter
Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 1 Construction de l'environnement
Comment résoudre la construction de l'environnement local de Ruby on Rails (MAC)!
Apprentissage des instructions SQL ~ Construction de l'environnement ~ Docker + MySQL
Construction de l'environnement GPU avec Docker [version d'octobre 2020]
Construction de Rails 6 et environnement PostgreSQL avec Docker
Construction de l'environnement de développement Laravel avec Docker (Mac)
Essayez d'exécuter MySql et Blazor avec docker-compose
Déployer sur heroku avec Docker (Rails 6, MySQL)
Modifier Mysql avec des commandes dans l'environnement Docker