web-dev-qa-db-ja.com

Docker-composeがへの接続時にハングする

Docker-compose upを実行すると問題が発生します。に接続するとハングし、localhost:4200のWebアプリにアクセスできません。

docker-compose.yml:

version: '2' # specify docker-compose version

# Define the services/containers to be run
services:
  angular: # name of the first service
    build:
      context: . 
      dockerfile: ./.docker/scs.dockerfile  # specify the directory of the Dockerfile
    container_name: secure-cloud-storage-build-dev
    image: secure-cloud-storage
    ports:
      - "4200:4200" # specify port forwarding

dockerfile:

# Stage 0, based on Node.js, to build and compile Angular
FROM node:8.6 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/
ARG env=prod
RUN npm run build -- --prod --environment $env

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.13
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

nginx-custom.conf:

server {
  listen 80;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }
}

ここに詳細な出力があります:

docker-compose --verbose up output

何がうまくいかないのか手掛かりはありますか?私はDockerの世界で非常に新鮮で、基本的にチュートリアルをやっているので、私が見逃していることは明らかです。私のlocalhost:4200ERR_EMPTY_RESPONSEを返します。

10
PerlMonk92

私はパーティーに遅れることは知っていますが、これは予想されることです。 docker-compose upは、docker runと同様に、コマンドラインを元に戻す場合は-dフラグが必要です。

コマンドは次のようになります。docker-compose up -d

なぜあなたのアプリが空の応答を返すのかに関しては、私にはわかりません。

これがこのスレッドに来る他の人を助けることを願っています!

9
AJRohrer

私の場合、Dockerも "Attaching to ..."メッセージを表示してハングアップしますが、アプリケーションは機能します。したがって、無視できる表示の問題のようです。

分離モードでdockerを実行できますdocker-compose up -d angularこのメッセージを抑制します。これまでは、メッセージを受信せずにフォアグラウンドモードで実行する方法を理解していませんでした。

構成ファイルは一般的に問題ありませんが、適切なポートを構成する必要があります。つまり、nginxもポート4200でリッスンする必要があります。

5
Martin