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:4200
はERR_EMPTY_RESPONSE
を返します。
私はパーティーに遅れることは知っていますが、これは予想されることです。 docker-compose upは、docker runと同様に、コマンドラインを元に戻す場合は-dフラグが必要です。
コマンドは次のようになります。docker-compose up -d
なぜあなたのアプリが空の応答を返すのかに関しては、私にはわかりません。
これがこのスレッドに来る他の人を助けることを願っています!
私の場合、Dockerも "Attaching to ..."メッセージを表示してハングアップしますが、アプリケーションは機能します。したがって、無視できる表示の問題のようです。
分離モードでdockerを実行できますdocker-compose up -d angular
このメッセージを抑制します。これまでは、メッセージを受信せずにフォアグラウンドモードで実行する方法を理解していませんでした。
構成ファイルは一般的に問題ありませんが、適切なポートを構成する必要があります。つまり、nginxもポート4200でリッスンする必要があります。