J'ai créé un conteneur docker mais je n'ai pas pu l'exécuter sur le port mappé par le docker ( http: // localhost: 3000 ). Vous trouverez ci-dessous les détails des configurations de docker que j'utilise dans mon application.
Docker version : 17.05.0-ce
Os: ubuntu 16.04
Mon Dockerfile:
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install -g bower
RUN npm install -g grunt-cli
RUN npm install
RUN bower install --allow-root
#RUN grunt --force
EXPOSE 3000
CMD ["grunt", "serve"]
Création du conteneur Docker:
docker build -t viki76/ng-app .
Conteneur en cours d'exécution:
docker run -p 3000:3000 -d viki76/ng-app
docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
21541171d884 viki/ng-app "grunt serve" 10 min ago Up 0.0.0.0:3000->3000/tcp
ÉDITER:
Mise à jour de la configuration Dockerfile
EXPOSE 9000
$ docker run -p 9000: 9000 viki76 / ng-app
Running "serve" task
Running "clean:server" (clean) task
>> 1 path cleaned.
Running "wiredep:app" (wiredep) task
Running "wiredep:test" (wiredep) task
Running "concurrent:server" (concurrent) task
Running "copy:styles" (copy) task
Copied 2 files
Done, without errors.
Execution Time (2017-05-17 13:00:13 UTC-0)
loading tasks 189ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 88%
loading grunt-contrib-copy 11ms ▇▇ 5%
copy:styles 16ms ▇▇▇ 7%
Total 216ms
Running "postcss:server" (postcss) task
>> 2 processed stylesheets created.
Running "connect:livereload" (connect) task
Started connect web server on http://localhost:9000
Running "watch" task
Waiting...
Chez Gruntfile.js
connect: {
options: {
port: 9000,
// Change this to '0.0.0.0' to access the server from outside.
hostname: '0.0.0.0',
livereload: 35729
},
S'il vous plaît, aidez-moi à résoudre ce problème. Merci
Je pense que votre problème est que grunt est lié à localhost: 9000 - qui est interne au conteneur de sorte que le port que vous publiez n'aura aucun effet.
Il doit être à l'écoute sur 0.0.0.0:9000 - Je ne pourrais pas vous dire ce que vous Gruntfile.js
devriez dire pour que cela se produise, mais il semble que, hors de la boîte, le service grunt ne servira que de localhost.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots