[RUBY] Über den Fall, in dem der Freeter "Docker" versucht hat, Docker in die vorhandene Rails-Anwendung einzufügen

Hallo

Es wird gemunkelt, dass moderne Entwicklungsunternehmen diese Zeit sicher übernehmen werden

Docker

Ich möchte vorstellen, wie man vorstellt (70% der Memo-Elemente für sich selbst)


Zunächst möchte ich etwas über Docker erklären. Ich habe mich nur einmal mit Docker befasst. Ich spreche also von Um Docker kennenzulernen, empfehle ich diesen Artikel Ich werde sehr sorgfältig erklären, wie Docker ist.

Informieren Sie sich über Server und die Nutzungshistorie von Docker.

Als allererstes Erstellen Sie eine Docker-Datei und verwenden Sie dieses Kanji


FROM ruby:2.6 //Versionsspezifikationsbefehl Ruby-Bestätigen Sie mit v

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

RUN mkdir /Buch App Name

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  //*Hinweis
  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  //*Hinweis

  # 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_Entwicklung Ihr eigener Datenbankname (gleich unten)

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  //In meinem Fall habe ich es nicht eingestellt, also habe ich beschlossen, es zu verwenden.
    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

Nach dem Schreiben

% docker-compose build 

Warten Sie eine Weile, während Sie viel Milchkaffee trinken.


Wenn ich kann
% docker-compose run web bundle exec rake db:create
% docker-compose run web bundle exec rake db:migrate

Wenn Sie es ohne Probleme schaffen

% docker-compose up

Starten Sie den Behälter, um den Vorgang abzuschließen.

das Ende.


Abschließend möchte ich die Fehler vorstellen, die beim Starten wie gewohnt auftreten.

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

Wie Sie sehen können, wenn Sie diesen Fehler lesen beruhigen,

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

Oder

Ich habe es früher vorgestellt.

Ich denke, wenn Sie diese Dinge tun, wird es geheilt.

Ich bin ein absoluter Anfänger, daher plane ich, Docker erneut zu studieren.

Diesmal

das ist alles.

Referenzartikel (Eher fast das gleiche) [Führen Sie Docker mit MySQL in die vorhandene Rails6-App ein. ](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) Einführung in Docker

Recommended Posts

Über den Fall, in dem der Freeter "Docker" versucht hat, Docker in die vorhandene Rails-Anwendung einzufügen
Rails6 Ich habe versucht, Docker in eine vorhandene Anwendung einzuführen
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Ich habe versucht, die Sitzung in Rails zu organisieren
Über das Symbol <%%> in Rails erb
[Rails] Ich habe versucht, die Anwendung zu löschen
Daten sortieren Absteigend, aufsteigend / Schienen
[Rails] Sprechen Sie darüber, wie Sie auf den Rückgabewert von where achten
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
[Rails] Der Fall, in dem der Server nicht mehr funktioniert
Führen Sie Docker in die Entwicklungs- und Testumgebung vorhandener Rails- und MySQL-Apps ein
[Rails] So bedienen Sie die in der Hauptanwendung verwendete Hilfsmethode mit Administrate
Führen Sie Docker in die Anwendung ein, die Sie erstellen
So überprüfen Sie Rails-Befehle im Terminal
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
Implementieren Sie die Nachsuchfunktion in der Rails-Anwendung (where-Methode).
Ich habe versucht, das Docker Integration-Plug-In in IntelliJ zu installieren
SSL in der lokalen Umgebung von Docker / Rails / Puma
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[Schienen] So zeigen Sie Bilder in der Ansicht an
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe versucht, die Cache-Funktion von Application Container Cloud Service in der lokalen Umgebung zu entwickeln
Ich habe versucht, innerhalb von 3 Monaten einen Antrag von unerfahren zu stellen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
[Docker] So sichern und wiederherstellen Sie DB-Daten der Rails-Anwendung auf Docker-Compose [MySQL]