[RUBY] À propos du cas où "Docker" freeter a tenté de mettre Docker dans l'application Rails existante

Bonjour

On dit que cette fois, il est définitivement adopté par les sociétés de développement modernes

Docker

Je voudrais vous présenter comment présenter (70% des éléments mémo pour vous-même)


Tout d'abord, je voudrais expliquer Docker. Je n'ai eu affaire à Docker qu'une seule fois, donc ce dont je parle, c'est Pour me familiariser avec Docker, je recommande cet article je vais vous expliquer très attentivement à quoi ressemble Docker.

Découvrez les serveurs et l'historique d'utilisation de Docker.

Tout d'abord Créez un dockerfile et utilisez ce kanji


FROM ruby:2.6 //Commande de spécification de version ruby-Confirmer avec v

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

RUN mkdir /Nom de l'application Livres

ENV APP_ROOT /Books 
WORKDIR $APP_ROOT

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

RUN gem install bundler 
RUN bundle install
ADD . $APP_ROOT

webpacker.yml



default: &default
  source_path: app/javascript
  source_entry_path: packs
  public_root_path: public
  public_output_path: packs
  cache_path: tmp/cache/webpacker
  check_yarn_integrity: false  //*Mise en garde
  webpack_compile_output: true

  # Additional paths webpack should lookup modules
  # ['app/assets', 'engine/foo/app/assets']
  resolved_paths: []

  # Reload manifest.json on all requests so we reload latest compiled packs
  cache_manifest: false

  # Extract and emit a css file
  extract_css: false

  static_assets_extensions:
    - .jpg
    - .jpeg
    - .png
    - .gif
    - .tiff
    - .ico
    - .svg
    - .eot
    - .otf
    - .ttf
    - .woff
    - .woff2

  extensions:
    - .mjs
    - .js
    - .sass
    - .scss
    - .css
    - .module.sass
    - .module.scss
    - .module.css
    - .png
    - .svg
    - .gif
    - .jpeg
    - .jpg

development:
  <<: *default
  compile: true

  # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
  check_yarn_integrity: false  //*Mise en garde

  # Reference: https://webpack.js.org/configuration/dev-server/
  dev_server:
    https: false
    host: localhost
    port: 3035
    public: localhost:3035
    hmr: false
    # Inline should be set to true if using HMR
    inline: true
    overlay: true
    compress: true
    disable_host_check: true
    use_local_ip: false
    quiet: false
    pretty: false
    headers:
      'Access-Control-Allow-Origin': '*'
    watch_options:
      ignored: '**/node_modules/**'


test:
  <<: *default
  compile: true

  # Compile test packs to a separate directory
  public_output_path: packs-test

production:
  <<: *default

  # Production depends on precompilation of packs prior to booting for performance.
  compile: false

  # Extract and emit a css file
  extract_css: true

  # Cache manifest.json for performance
  cache_manifest: true

database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root  
  password: example
  # socket: /tmp/mysql.sock

  host: db

development:
  <<: *default
  database: Books_développement Votre propre nom de base de données (même ci-dessous)

test:
  <<: *default
  database: Books_test

production:
  <<: *default
  database: Books_production
  username: Books
  password: <%= ENV['BOOKS_DATABASE_PASSWORD'] %>
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

docker-compose.yml



version: '3'
services:
  db:
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example  //Dans mon cas, je ne l'ai pas réglé, j'ai donc décidé de l'utiliser.
    image: mysql
    ports:
      - "4306:3306"

  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/Books
    ports:
      - "3000:3000"
    depends_on:
      - db

Après avoir écrit,

% docker-compose build 

Attendez un moment en buvant beaucoup de lait de café au lait.


Si je peux
% docker-compose run web bundle exec rake db:create
% docker-compose run web bundle exec rake db:migrate

Si vous pouvez le faire sans problèmes

% docker-compose up

Lancez le conteneur pour terminer.

la fin.


Enfin, je voudrais vous présenter les erreurs qui apparaissent comme d'habitude lors du lancement.

web_1  | => Booting Puma
web_1  | => Rails 6.0.3.2 application starting in development 
web_1  | => Run `rails server --help` for more startup options
web_1  | sh: 1: yarn: not found
web_1  | 
web_1  | 
web_1  | ========================================
web_1  |   Your Yarn packages are out of date!
web_1  |   Please run `yarn install --check-files` to update.
web_1  | ========================================
web_1  | 
web_1  | 
web_1  | To disable this check, please change `check_yarn_integrity`
web_1  | to `false` in your webpacker config file (config/webpacker.yml).
web_1  | 
web_1  | 
web_1  | 
web_1  | 
web_1  | 
web_1  | Exiting
books_web_1 exited with code 1

Comme vous pouvez le voir si vous lisez cette erreur calmez-vous,

% yarn install --check-files
or 
% yarn update

Ou

Je l'ai présenté plus tôt.

Je pense que si vous faites ces choses, ce sera guéri.

Je suis un débutant complet, je prévois donc d'étudier à nouveau Docker.

Cette fois

c'est tout.

Article de référence (Plutôt presque la même chose) [Présentez Docker avec MySQL à l'application rails6 existante. ](Https://qiita.com/momokan928/items/d560fff3855fcbe0b811#1dockerfiledocker-composeyml%E3%82%92%E6%97%A2%E5%AD%98%E3%82%A2%E3%83%97% E3% 83% AA% E3% 81% AE% E3% 83% AB% E3% 83% BC% E3% 83% 88% E3% 83% 87% E3% 82% A3% E3% 83% AC% E3% 82% AF% E3% 83% 88% E3% 83% AA% E3% 81% AB% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B) Introduction à Docker

Recommended Posts

À propos du cas où "Docker" freeter a tenté de mettre Docker dans l'application Rails existante
Rails6 J'ai essayé d'introduire Docker dans une application existante
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
J'ai essayé d'organiser la session en Rails
À propos du symbole <%%> dans Rails erb
[Rails] J'ai essayé de supprimer l'application
Tri des données Décroissant, croissant / Rails
[Rails] Parlez de prêter attention à la valeur de retour de l'endroit
Après avoir appris Progate, j'ai essayé de créer une application SNS en utilisant Rails dans l'environnement local
[rails] Le cas où le serveur a cessé de fonctionner
Présentez Docker à l'environnement de développement et à l'environnement de test des applications Rails et MySQL existantes
[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer
Présentez docker à l'application que vous créez
Comment vérifier les commandes Rails dans le terminal
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Implémenter la fonction de recherche de publication dans l'application Rails (méthode where)
J'ai essayé d'installer le plug-in d'intégration Docker dans IntelliJ
SSL dans l'environnement local de Docker / Rails / puma
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
[Rails] Comment afficher les images dans la vue
[Rails 6.0, Docker] J'ai essayé de résumer la construction de l'environnement Docker et les commandes nécessaires pour créer un portfolio
J'ai essayé de développer la fonction de cache d'Application Container Cloud Service dans l'environnement local
J'ai essayé de faire une demande en 3 mois d'inexpérimenté
J'ai essayé d'implémenter une application web pleine de bugs avec Kotlin
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
[Docker] Comment sauvegarder et restaurer les données de base de données de l'application Rails sur docker-compose [MySQL]