首页 > 解决方案 > 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。他们是不同的。

标签: dockernetworking

解决方案


推荐阅读