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