[LINUX] Sie dort, die Rails sowohl auf dem Host als auch auf dem Client mit Docker Compose starten möchten!

was ist das?

Ich denke nicht so viel, aber wenn Sie Docker Compose mit Rails verwenden, möchten Sie den Rails-Server auf Host- und Client-Seite starten? In meinem Fall konnte ich keine Möglichkeit finden, System Test nur in der Docker-Umgebung zum Laufen zu bringen. In meinem Fall möchte ich Rails in der Ubuntu-Umgebung ausführen und die anderen Systemtests im Container in Docker ausführen. Daher wurde eine solche Umgebung benötigt. Das Problem dabei war, dass die in (Rails root) / tmp / erstellten Dateien auf Host- und Client-Seite in Konflikt gerieten und nicht gleichzeitig gestartet werden konnten. Der Hinweis, den ich in einem solchen Fall lesen und lösen konnte, war "So schließen Sie einen Teil beim Mounten von Volume mit Docker aus", also ich selbst Ich werde die Flugbahn hier verlassen.

Was machst du?

Der Punkt ist, dass Rails nicht gleichzeitig gestartet werden kann, da der tmp-Ordner vorhanden ist. Ohne sie können Sie unabhängig von Portkonflikten booten. Der Punkt ist, dass wir eine spärliche Beziehung zueinander haben sollten. Das heißt, die Client- und Host-TMP-Ordner sollten nicht synchron sein. Der folgende Code verhindert, dass nur der tmp-Ordner mit dem Host flattert.

version: '3'

volumes:
  rails_tmp_data:
    
services:
  as:
    build:
      context: ./
    ports:
      - 3333:3000
    volumes:
      - ./:/usr/src/app/
      - rails_tmp_data:/usr/src/app/tmp/
    command: 
      /bin/sh -c "yarn install --check-files && bundle install && rails db:create && rails db:migrate && rm -f /usr/src/app/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0' --early-hints"

Der obige Code ist auf die Hauptpunkte beschränkt. Bitte beachten Sie daher, dass das Kopieren und Einfügen nicht funktioniert.

Das ist es

Ich habe die Porteinstellungen gebrochen. Ich werde hier nicht darüber schreiben. Es wurde zum Schmerz, unterwegs einen Artikel zu schreiben. Bitte tun Sie etwas dagegen. Korrekt.

Über den Titel

Es war nicht Stapa Saito Majirespect, und ich konnte mir einen solchen Titel nur ohne einen Witz vorstellen.

Recommended Posts

Sie dort, die Rails sowohl auf dem Host als auch auf dem Client mit Docker Compose starten möchten!
Lesen Sie das Tag, das Ihnen in ec2 mit boto3 zugewiesen wurde
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
Für diejenigen, die nicht wissen, wie man ein Passwort mit Jupyter auf Docker festlegt
Wenn Sie das Intervall der Achsenskala mit APLpy anpassen möchten
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Stellen Sie mit Ihrem Smartphone eine Verbindung zum VPN her und schalten Sie den Server aus / ein
Wenn Sie awsebcli in CircleCI aufnehmen möchten, geben Sie die Python-Version an
Fügen Sie auf beiden Seiten ein Konfidenzintervall von 95% hinzu, um mit Python / Matplotlib zu rechnen
Wenn Sie den HTTP-Header des Testclients von Flask ändern möchten
Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen
Starten Sie die Flask-Anwendung mit Docker auf Heroku
Treten Sie Azure mit Go ~ bei Für diejenigen, die Azure mit Go ~ starten und kennenlernen möchten
Für diejenigen, die Excel VBA lernen und mit Python beginnen möchten
Was Sie sich mit der grundlegenden Grammatik "String Manipulation" von Python merken möchten
nb_conda_kernels wird empfohlen, wenn Sie die virtuelle Umgebung mit jupyter betreten möchten