[DOCKER] Une note gênante lorsque vous essayez d'utiliser nginx avec des conteneurs distants de vscode

Ce que j'ai essayé de faire

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 "

Qu'est-il arrivé

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

Pourquoi?

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# 

En quelque sorte suspect

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 > 

bingo

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! !!

Sommaire

--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 "

référence

Recommended Posts

Une note gênante lorsque vous essayez d'utiliser nginx avec des conteneurs distants de vscode
Notes de personnes qui ont trébuché en essayant de créer un projet Rails
[Note] Une liste de commandes que j'ai vérifiées plusieurs fois après avoir essayé Ruby.
Une note que j'ai renoncé à essayer de créer une annotation personnalisée pour Lombok
Notez que j'étais accro au traitement par lots avec Spring Boot
Une histoire sur le fait d'avoir du mal à construire PHP 7.4 sur CentOS 8 de GCE
Un avertissement s'affiche lorsque vous essayez d'utiliser un entier énorme avec les variables spéciales $ 1, $ 2, $ 3 ...
Quand j'ai essayé de composer une mise à jour dans le conteneur Docker, je me suis fâché avec proc_open (): fork a échoué
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
[Java débutant] J'ai une compréhension un peu plus approfondie de "Il est temps d'utiliser le nouveau", alors prenez note
J'ai essayé de créer une API Web qui se connecte à DB avec Quarkus
Hanashi a trébuché un peu sur le chemin en essayant d'étudier Java avec VScode
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!
J'ai essayé d'implémenter une fonction équivalente à Felica Lite avec HCE-F d'Android
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
Volume qui souhaite utiliser de nombreux opérateurs logiques dans l'instruction if
Rails6 Je veux créer un tableau de valeurs avec une case à cocher
SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
J'ai réussi à obtenir un blanc lorsque j'ai apporté le contenu de Beans dans la zone de texte
Une histoire dans laquelle j'étais vraiment quand j'ai fait triple DES avec ruby
Je veux utiliser java8 forEach avec index
Collection RSpec que j'ai fréquemment utilisée
J'ai essayé de casser le bloc avec java (1)
Comme je l'utilise souvent, je note les choses liées à DB sur Android.
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
[Solution] Un mémo que j'ai eu du mal car le format de sinatra-validation a changé.
Une histoire sur la création de chemin PKIX a échoué lors de la tentative de déploiement sur Tomcat avec Jenkins
Un site facile à comprendre lorsque j'ai commencé à apprendre Spring Boot
Une histoire sur l'exécution de Sprint-boot avec kubernetes (GKE) et l'échec de la connexion à CloudSQL
Je souhaite utiliser PowerMock dans une classe qui combine des tests paramétrés et des tests ordinaires
J'ai eu une erreur en essayant d'installer sbt pour créer un environnement de développement Scala
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java
Java: Une histoire qui m'a mis mal à l'aise quand on m'a appris à comparer des chaînes avec des égaux sans raison.
clone de kintone? J'étais assez accro au lancement de l'extension OSS WebDB avec Lightsail + Docker, alors prenez-en note.