我在运行docker-compose时遇到了一个问题。它挂起了附加到,我无法访问我的localhost:4200
上的Web应用程序。
停靠-编写.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
停靠文件:
# 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自定义配置文件:
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
。
7条答案
按热度按时间mlmc2os51#
我知道我迟到了,但这是意料之中的。docker-compose up,就像docker run一样,如果你想取回你的命令行,需要一个-d标志。
以下是该命令的外观:
docker-compose up -d
至于为什么你的应用程序返回一个空的响应,我不知道。
希望这能帮助其他人来到这个线程!
8yparm6h2#
在我的例子中,Docker也挂起显示“附加到...”消息,但应用程序工作正常。所以这似乎是一个显示问题,您可以忽略。
您可以在分离模式
docker-compose up -d angular
下运行Docker来抑制此消息。到目前为止,我还没有想出如何在前台模式下运行它而不接收消息。你的配置文件总体上看起来不错,但你必须配置正确的端口,即nginx还需要监听端口4200。
hfwmuf9z3#
如果您像我一样在这里结束,
docker-compose
甚至没有挂起,只是退出:我的问题是有人添加了要编写的配置文件,而我没有发现调用docker-compose
的bash脚本没有使用正确的--profile
参数。如果没有匹配的配置文件,
docker-compose
将很高兴地什么也不做,只是简单地说attaching to
,然后退出,而不是类似于“嘿,您的配置文件参数什么也不匹配,您是故意这样做的吗?”soat7uwm4#
Docker合成挂起于连接到
看起来很傻,但是确保日志被写入stdout。我花了一个小时才发现日志被写入了一个文件。
如果你确定日志应该被打印,那么改变Ngnix配置文件,把日志指向stdout。
消息Attaching to container对我来说似乎有点误导。我以为Docker正在连接到控制台,但它已经连接了。其他一切都正常工作。container已启动。
我的本地主机:4200返回ERR_EMPTY_RESPONSE
在
docker-compose.yml
中,将端口Map到Ngnix正在监听的位置。给定listen 80;
行,在本例中为80:w8biq8rn5#
尝试在另一个终端运行此命令:
这出于某种原因帮助了我的挂起docker-compose附加到东西上。似乎STDOUT挂起是出于某种原因,这进一步踢它...奇怪的是,它只在使用docker-compose时挂起...单独启动每个服务是一种魅力...
plupiseo6#
如果你的代码运行良好,你只看到
Attaching to [container name/id]
,那么这是预期的行为。附加后,它会打印日志,但如果没有日志,那么它只会在运行状态下等待,所以如果你在等待日志,那么你的日志模块可能有问题,检查一下,看看你的日志。如果要退出
up
,请使用up -d
。h79rfbju7#
确保服务名是唯一的
我复制/粘贴了两个同名的服务
这可能导致Docker合成在
Attaching to
上挂起