Wai "Essayez de développer une application avec ** vscode Remote-Containers ** et ** Docker **. D'abord à partir de ** nginx **. ** Je ne connais pas du tout Remote-Containers, Docker ou nginx ** mais d'une manière ou d'une autre Naruyaro "
Préparez le yml suivant et confirmez que l'index.html préparé séparément sur localhost: 8080 est affiché par docker-compose up -d.
docker-compose.yml
version: '3.8'
services:
  web:
    image: nginx
    volumes:
      - .:/usr/share/nginx/html
    ports:
      - "8080:80"
Cependant, lorsque j'ouvre le même avec Remote-Containers de vscode, index.html ne s'affiche pas même si j'accède à localhost: 8080.
La ligne command: / bin / sh -c" while sleep 1000; do:; done " est écrite par défaut dans le fichier ./. Devcontainer / docker-compose.yml qui est automatiquement créé lorsque Remote-Containers est exécuté. Cependant, il semble que index.html ne sera pas affiché s'il y a cette ligne.
Remote-Structure du répertoire après l'exécution des conteneurs
.devcontainer/          # Remote-Généré automatiquement en exécutant des conteneurs
  devcontainer.json
  docker-compose.yml    #Ce gars a une ligne de commande
docker-compose.yml
index.html
command: (abrégé ci-dessous) est écrit dans . / Docker-compose.yml.Je ne comprends pas....
Démarrez le conteneur nginx avec docker-compose.yml sans commande: / bin / sh -c" while sleep 1000; do:; done ", attachez-le et appuyez sur la même commande sleep, et il sera exécuté correctement ( (Journal ci-dessous), il semble donc qu'il n'y ait pas d'erreur dans la commande command: dans le conteneur.
root@hoge:/workspace# /bin/sh -c "while sleep 1000; do :; done"
^C
root@hoge:/workspace# 
Quand j'ai essayé docker ps --no-trunc, la COMMANDE lorsque j'ai exécuté manuellement docker-compose up -d était / docker-entrypoint.sh nginx -g'daemon off; ' Cette chose. Est-ce écrasé par / bin / sh -c" pendant le sommeil 1000; 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 > 
Quand j'ai mis command: /docker-entrypoint.sh nginx -g'daemon off; ' dans docker-compose.yml, ʻindex.html` était affiché. C'est la cause!
Il semble que le démon nginx n'ait pas démarré suite à l'écrasement de docker-entrypoint.sh, qui est implicitement exécuté par défaut, avec une autre commande. Je l'ai résolu pour le moment! Yay! !!
--Event: index.html disparaît lorsque docker-compose.yml de nginx a la commande: / bin / sh -c" pendant le sommeil 1000; do :; done "
--Cause: COMMAND au démarrage du conteneur nginx est de la valeur par défaut (= /docker-entrypoint.sh nginx -g'daemon off; ') à / bin / sh -c" pendant le sommeil 1000; faire: Parce qu'il est écrasé par done "
command: de tout docker-compose.yml. (Vous pouvez également utiliser command: /docker-entrypoint.sh nginx -g'daemon off; ' `. Normalement, ce n'est pas le cas.)Recommended Posts