Dockerコンテナ内でコンテナを使用してコードをコンパイルして実行し、コード自体がホストコンピュータにある(つまり私のローカルマシン)。イメージを作成して実行していますが、接続できません。ホストマシンからDockerコンテナでホストされているエクスプレスサーバに接続できません
マイdockerfile:
# Dockerfile (tag: v3)
FROM node:latest
WORKDIR /tmp
COPY package.json /tmp/
RUN npm config set registry http://registry.npmjs.org/ && npm i
WORKDIR /usr/src/app
COPY . /usr/src/app/
RUN cp -a /tmp/node_modules /usr/src/app/ && npm run dll
ENV NODE_ENV=production
ENV PORT=4000
EXPOSE 4000
そして、私のドッキングウィンドウ-コンファイル:この設定で
# docker-compose.yml (tag: v4)
web:
build: .
ports:
- "4000:4000"
volumes:
- .:/usr/src/app/:rw
environment:
- NODE_ENV=development
command: >
sh -c '
if test -d node_modules;
then
echo node_modules_exists ;
else
cp -a /tmp/node_modules /usr/src/app/website;
fi &&
npm i &&
npm start
'
、私はlocalhost:4000
に接続できるように期待したいです。私のエクスプレスアプリがポート4000でリッスンしているコンテナからのコンソール出力。docker inspect
でチェックすると、コンテナのIPアドレスである172.17.0.2:4000
で試してみました。
接続には他にどのような手順が必要ですか?私はLinuxのコンテナを使ってWindows 10とDocker 17.09.0-ce-win33(13620)を実行しています。