[DOCKER] Ein problematischer Hinweis beim Versuch, nginx mit Remote-Containern von vscode zu verwenden

Was ich versucht habe zu tun

Wai "Versuchen Sie, eine App mit ** vscode Remote-Containers ** und ** Docker ** zu entwickeln. Zuerst von ** nginx **. ** Ich kenne Remote-Container, Docker oder nginx überhaupt nicht **, aber irgendwie Naruyaro "

Was ist passiert

Bereiten Sie das folgende yml vor und bestätigen Sie, dass die bei localhost separat erstellte index.html: 8080 von "docker-compose up -d" angezeigt wird.

docker-compose.yml


version: '3.8'
services:
  web:
    image: nginx
    volumes:
      - .:/usr/share/nginx/html
    ports:
      - "8080:80"

Wenn ich jedoch dasselbe mit Remote-Containern von vscode öffne, wird index.html nicht angezeigt, selbst wenn ich auf localhost: 8080 zugreife.

Die Zeile command: / bin / sh -c" while sleep 1000; do :; done " wird standardmäßig in die ./. Devcontainer / docker-compose.yml geschrieben, die automatisch erstellt wird, wenn Remote-Container ausgeführt werden. Es scheint jedoch, dass index.html nicht angezeigt wird, wenn diese Zeile vorhanden ist.

Remote-Verzeichnisstruktur nach Ausführung von Containern


.devcontainer/          # Remote-Wird automatisch durch Ausführen von Containern generiert
  devcontainer.json
  docker-compose.yml    #Dieser Typ hat eine Kommandozeile
docker-compose.yml
index.html

Warum?

Ich verstehe nicht....

Starten Sie den Nginx-Container mit dem Befehl docker-compose.yml ohne Befehl: / bin / sh -c" während des Schlafes 1000; do :; done ", hängen Sie ihn an und drücken Sie denselben Befehl sleep, und er wird ordnungsgemäß ausgeführt ( (Protokoll unten), so dass es den Anschein hat, dass der Befehl command: im Container keinen Fehler enthält.

root@hoge:/workspace# /bin/sh -c "while sleep 1000; do :; done"
^C
root@hoge:/workspace# 

Irgendwie verdächtig

Als ich "docker ps --no-trunc" ausprobierte, war der "BEFEHL", als ich "docker-compose up -d" manuell ausführte, "/ docker-entrypoint.sh nginx -g'daemon off;" Das Ding. Wird dies durch "/ bin / sh -c" im Schlaf 1000 überschrieben? Do:; done ""?

web_tmp > docker-compose up -d
Creating web_tmp_web_1 ... done
web_tmp >
web_tmp > docker ps --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND
 CREATED             STATUS              PORTS                  NAMES
8f7c7a3300bd7e9894f387b39cc904776858893e337f849ecee5dd69e6ad9291   nginx               "/docker-entrypoint.sh nginx -g 'daemon off;'"  
 2 minutes ago       Up 2 minutes        0.0.0.0:8080->80/tcp   web_tmp_web_1
web_tmp > 

Bingo

Als ich command: /docker-entrypoint.sh nginx -g'daemon off; ' in docker-compose.yml setzte, wurde index.html angezeigt. Das ist die Ursache!

Es scheint, dass der Nginx-Daemon nicht gestartet wurde, weil "docker-entrypoint.sh", das standardmäßig implizit ausgeführt wird, mit einem anderen Befehl überschrieben wurde. Ich habe es vorerst gelöst! Yay! !!

Zusammenfassung

--Event: index.html verschwindet, wenn "docker-compose.yml" von nginx den Befehl "/ bin / sh -c" hat, während der Schlaf 1000; do:; done ""

Referenz

Recommended Posts

Ein problematischer Hinweis beim Versuch, nginx mit Remote-Containern von vscode zu verwenden
Notizen von Personen, die beim Versuch, ein Rails-Projekt zu erstellen, gestolpert sind
[Hinweis] Eine Liste von Befehlen, die ich nach dem Versuch mit Ruby viele Male überprüft habe.
Eine Notiz, die ich aufgegeben habe, um eine benutzerdefinierte Anmerkung für Lombok zu erstellen
Beachten Sie, dass ich süchtig nach Stapelverarbeitung mit Spring Boot war
Eine Geschichte über die Schwierigkeiten beim Versuch, PHP 7.4 auf CentOS 8 von GCE zu erstellen
Eine Warnung wird angezeigt, wenn versucht wird, eine große Ganzzahl mit den speziellen Variablen $ 1, $ 2, $ 3 ... zu verwenden.
Als ich versuchte, ein Composer-Update im Docker-Container durchzuführen, wurde ich wütend auf proc_open (): fork failed
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
[Java-Anfänger] Ich habe ein etwas tieferes Verständnis von "Es ist Zeit, neue zu verwenden", also machen Sie sich eine Notiz
Ich habe versucht, eine Web-API zu erstellen, die mit Quarkus eine Verbindung zur Datenbank herstellt
Hanashi stolperte ein wenig auf dem Weg, Java mit VScode zu studieren
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Ich habe versucht, mit HCE-F von Android eine Funktion zu implementieren, die Felica Lite entspricht
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Volume, das viele logische Operatoren in der if-Anweisung verwenden möchte
Rails6 Ich möchte ein Array von Werten mit einem Kontrollkästchen erstellen
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Ich habe es geschafft, ein Leerzeichen zu bekommen, als ich den Inhalt von Beans in den Textbereich gebracht habe
Eine Geschichte, die mir sehr gut gefallen hat, als ich mit Ruby Triple DES gemacht habe
Ich möchte Java8 für jeden mit Index verwenden
RSpec-Sammlung, die ich häufig verwendet habe
Ich habe versucht, den Block mit Java zu brechen (1)
Da ich es oft benutze, notiere ich mir DB-bezogene Dinge auf Android.
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
[Lösung] Ein Memo, das mir schwer fiel, weil sich das Format der Sinatra-Validierung geändert hat.
Eine Geschichte über die Erstellung von PKIX-Pfaden schlug fehl, als versucht wurde, mit Jenkins eine Tomcat-Bereitstellung durchzuführen
Eine Seite, die leicht zu verstehen war, als ich anfing, Spring Boot zu lernen
Die Geschichte, Sprint-Boot mit Kubernetes (GKE) auszuführen und keine Verbindung zu CloudSQL herzustellen
Ich möchte PowerMock in einer Klasse verwenden, die parametrisierte Tests und gewöhnliche Tests kombiniert
Beim Versuch, sbt zu installieren, um eine Scala-Entwicklungsumgebung zu erstellen, ist ein Fehler aufgetreten
Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
Java: Eine Geschichte, in der ich mich unwohl fühlte, als mir beigebracht wurde, Strings ohne Grund mit Gleichen zu vergleichen.
Kintone-Klon? Ich war ziemlich süchtig danach, die OSS WebDB-Erweiterung mit Lightsail + Docker zu starten. Notieren Sie sich dies.