[RUBY] Rails6 Ich habe versucht, Docker in eine vorhandene Anwendung einzuführen

Zweck dieses Artikels Docker hatte jeden Tag Angst vor der Sorge, dass er seinen Platz zu Hause verlieren würde, wenn es ihm nicht gelingen würde, den Job zu wechseln, und schaffte es, ihn einzuführen, während er seinen Geist zermürbte. Ein Memorandum, um die Not nur einmal zu machen w

Prozedur
  1. Ändern Sie die Datenbank von Splite3 in Postgresql
  2. Datei hinzufügen
  3. Bearbeiten Sie Dockerfile, docker-compose.yml, database.yml, webpacker.yml
  4. Laden Sie Docker für Mac herunter
  5. Geben Sie den Befehl ein

Ändern Sie die Datenbank von Splite3 in Postgresql Es scheint möglich geworden zu sein, es mit einem Befehl von Rails 6 zu ändern.
$ rails db:system:change --to=postgresql

Dateien hinzufügen und bearbeiten Im Stammverzeichnis der App Dockerfile docker-compose.yml Fügen Sie die beiden oben genannten hinzu und bearbeiten Sie sie.
#Dockerfile

FROM ruby:2.7.1 #Passen Sie die Version an. Fragen Sie bei Gemfile nach
RUN curl https://deb.nodesource.com/setup_12.x | bash
RUN curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt-get update && apt-get install -y nodejs yarn postgresql-client
RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y postgresql-client --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

WORKDIR /myapp

ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock

RUN gem install bundler
RUN bundle install

ADD . /myapp

↑ Ich habe verschiedene Fehler bekommen und bin damit umgegangen, aber ich bekomme immer noch eine Warnung. Pien

#docker-compose.yml

version: '3'
services:
  db:
    image: postgres
    ports:
      - '5432:5432'
    volumes:
      - postgresql-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=Passwort # Wenn Sie kein beliebiges Passwort festlegen, tritt ein Fehler auf.
  web:
    build:
      context: .
      dockerfile: Dockerfile
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    tty: true
    stdin_open: true
    depends_on:
      - db
    ports:
      - "3000:3000"
    volumes:
      - .:/myapp #Änderungen des Quellcodes werden sofort in Docker angezeigt
volumes:
  postgresql-data:
    driver: local

database.yml



#Kommentar weglassen
#Passwort ist Docker-compose.Was wurde mit yml eingestellt

default: &default
  adapter: postgresql
  encoding: utf8
  host: db
  username: postgres
  password: password 
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: mayby_docker_development

#Kommentar weglassen

test:
  <<: *default
  database: mayby_docker_test

#Kommentar weglassen

production:
  <<: *default
  database: mayby_docker_production
  username: mayby_docker
  password: <%= ENV['MAYBY_DOCKER_DATABASE_PASSWORD'] %>

webpacker.yml


check_yarn_integrity: false
#default,Es schien nutzlos zu sein, wenn nicht beide Entwicklungen auf falsch gesetzt wurden.

Laden Sie Docker für Mac herunter Ich werde es von der offiziellen Website herunterladen. https://docs.docker.jp/docker-for-mac/install.html

Geben Sie den Befehl ein Da es lang ist, verdorrt es, wenn ein Fehler auftritt.
$ docker-compose build

Erstellen Sie eine Datenbank und migrieren Sie.

$ docker-compose run web rake db:create db:migrate

Wenn es bei local: 3000 angezeigt wird, scheint es, dass es vorerst gemacht wurde.

$ docker-compose up

Ich bin endlich so weit gekommen, aber es erscheint nicht! Der Browser sagt, dass es einfach vom lokalen Host abgelehnt wurde, siehe hier.

[Rails] Was tun, wenn "Konsole von kann nicht gerendert werden!" im Protokoll des Rails angezeigt wird

config/environment/development.rb



 config.web_console.whitelisted_ips = 'Abgelehnte IP-Adresse'

Ich habe es getan, aber es gibt noch andere

Es gab einen sogenannten Segmentierungsfehler im Zusammenhang mit SaaS. Wenn ich versuche, mit der letzten Kraft zu googeln,

Das Problem, dass Rails 6 einen Segmentierungsfehler verursachte, wurde behoben

Es gab einen gottähnlichen Blog.

assets.rb


#Stoppen Sie die parallele Kompilierung von Asetts (Gegenmaßnahmen gegen Segmentierungsfehler)
Rails.application.config.assets.configure do |env|
  env.export_concurrent = false
end

Es wird gesagt, dass ein Edelstein für Gegenmaßnahmen veröffentlicht wird, aber ich bin mir noch nicht sicher, also werde ich eine Weile warten.

Letzte Es ist ein trendiger Docker, Es ist keine echte Sache, also kannst du es nicht verstehen, wenn du es nicht tatsächlich erlebst. Als Nächstes werde ich versuchen, die Bereitstellung in AWS durchzuführen.

Recommended Posts

Rails6 Ich habe versucht, Docker in eine vorhandene Anwendung einzuführen
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Über den Fall, in dem der Freeter "Docker" versucht hat, Docker in die vorhandene Rails-Anwendung einzufügen
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Einführung von Vue.js in eine vorhandene Rails-App
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Ich habe versucht, eine Android-Anwendung mit MVC zu erstellen (Java)
Was ist Docker? Ich habe versucht zusammenzufassen
Einführung von Vuetify in vorhandene Rails-Apps
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
Ich habe versucht, ein automatisches Backup mit angenehmem + PostgreSQL + SSL + Docker zu erstellen
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Downgrade einer vorhandenen App, die mit Rails 5.2.4 erstellt wurde, auf 5.1.6
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, die Sitzung in Rails zu organisieren
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
Führen Sie Docker in die Anwendung ein, die Sie erstellen
[Rails] So erstellen Sie eine Umgebung mit Docker
[Rails] Erstellen Sie eine Anwendung
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
[Rails] So stellen Sie über den HTTP-Client eine Verbindung zu einer externen API her (ich habe versucht, eine Verbindung zur Qiita-API herzustellen)
[Rails 6] Dockerisieren Sie vorhandene Rails-Apps [Docker]
Ich habe Rails Anfänger ausprobiert [Kapitel 1]
Ich habe Rails Anfänger ausprobiert [Kapitel 2]
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Einführung von Vue.js in eine vorhandene Rails-App
Ich habe versucht, eine React.js x TypeScript x Material-Benutzeroberfläche in einer Docker-Umgebung zu erstellen
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
[Rails] Ich habe versucht, die Stapelverarbeitung mit der Rake-Task zu implementieren
Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe versucht, einen API-Server mit Go (Echo) x MySQL x Docker x Clean Architecture zu erstellen