Docker-compose挂在附加到

时间:2018-05-01 18:36:57

标签: angular docker web docker-compose

运行docker-compose时遇到问题。它挂在附加上,我无法在localhost:4200上访问我的网络应用。

搬运工-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

5 个答案:

答案 0 :(得分:9)

我知道我参加晚会很晚,但这是可以预料的。 docker-compose up,就像docker run一样,如果要返回命令行,则需要-d标志。

命令如下所示:docker-compose up -d

我不确定您的应用为何返回空响应。

希望这有助于其他人加入该话题!

答案 1 :(得分:1)

在我的情况下,docker也挂起并显示“附加到...”消息,但该应用程序正常工作。因此,这似乎是一个可以忽略的显示问题。

您可以在分离模式docker-compose up -d angular中运行docker以禁止显示此消息。直到现在,我仍然不知道如何在不接收消息的情况下以前台模式运行它。

您的配置文件通常看起来不错,但是您必须配置正确的端口,即nginx也需要监听4200端口。

答案 2 :(得分:0)

尝试在另一个终端上运行此命令:

__repr__()

由于某种原因,这有助于将我的docker-compose悬挂在东西上。似乎STDOUT由于某种原因而挂起,这进一步踢了它。奇怪的是,它仅在使用docker-compose时才挂起...单独启动每个服务都非常有用...

答案 3 :(得分:0)

确保服务名称唯一

我正在复制/粘贴,结果得到了两个同名的服务

services: 
  node_server:
    ...

  node_server: # Duplicate service!
    ...

这会导致 docker compose 在 Attaching to 上挂起

答案 4 :(得分:0)

对于来自搜索引擎的人:

看起来很傻,但确保日志正在写入标准输出。我花了一个小时才发现日志正在写入文件中。

附加到容器的消息对我来说有点误导。我以为它正在附加的过程中,但标准输出已经附加了。其他一切对我来说都正常工作。容器已启动。