docker - docker 命令正确公开端口,但 docker-compose 没有
问题描述
我试图在 docker-compose 设置中公开在我的 docker 容器中运行的 vue.js 服务器。但是,尽管我可以构建单个容器来正确执行此操作,但我无法使用 docker-compose 使其工作。
当我运行命令时 - docker run -p 8888:8080 client
(在构建客户端映像之后),我可以访问位于 localhost:8888 的默认 vue 页面。
但是,当我跑步时,我docker-compose up
无法做到。
这是我的docker-compose.yml
-
version: '3.6'
services:
client:
restart: always
container_name: client
ports:
- "8888:8080"
environment:
- VUE_CLI_BABEL_TARGET_NODE=true
- VUE_CLI_BABEL_TRANSPILE_MODULES=true
build:
context: .
dockerfile: ./client/Dockerfile
volumes:
- "./client/:/client/"
这是我的Dockerfile
-
FROM node:10-alpine
ARG PORT=8080
ENV PORT=$PORT
WORKDIR /client
RUN apk update && apk add --update bash git openssl yarn wget curl && \
rm -rf /var/cache/apk/*
COPY client /client
RUN yarn install && yarn serve
需要注意的是,我使用的是 Docker for Mac。
编辑:这是docker container ps --no-trunc
.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
049db2af69db9979c5d3feea92d7b039f6c06502f24f76ce4da75f104ff5cf60 sha256:597bb7c8dd1b3c8510b565f211873c40935a6ac9d434f9379651fab94c9f1a7d "/bin/sh -c 'yarn install && yarn serve'" 2 minutes ago Up 2 minutes agitated_stallman
d86d0c4dcc3168705f0f949876823cf4c0188161a53754788d88c20e3e42d250 sha256:b332d7c0a2af04303eac7f37f566f0451bbb222b051705d9c9e6ca8e2e97e291 "/bin/sh -c 'yarn install && yarn serve'" 3 hours ago Up 3 hours mystifying_payne
第一个是图像,第二个是 docker-compose up。他们是不同的。