首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在本地计算机上通过ebcli运行docker容器

无法在本地计算机上通过ebcli运行docker容器
EN

Stack Overflow用户
提问于 2020-04-22 07:40:34
回答 1查看 70关注 0票数 0

ebcli发出docker运行命令的方式似乎有一些问题。

以下是我在MacOS计算机上运行的命令

eb local run --port 3001

虽然eb能够成功构建docker镜像,但当它尝试运行相同的镜像时,它会抛出下面的错误。

代码语言:javascript
复制
docker: invalid publish opts format (should be name=value but got '3001:${PORT}').

下面是我的Dockerfile的样子

代码语言:javascript
复制
# Check out https://hub.docker.com/_/node to select a new base image
FROM node:10-slim

# Set to a non-root built-in user `node`
USER node

# Create app directory (with user `node`)
RUN mkdir -p /home/node/app

WORKDIR /home/node/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY --chown=node package*.json ./

RUN npm install

# Bundle app source code
COPY --chown=node . .

RUN npm run build

# Bind to all network interfaces so that it can be mapped to the host OS
ENV HOST=0.0.0.0 PORT=3000

EXPOSE ${PORT}

CMD [ "node", "." ]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 06:09:32

这是ebcli的一个限制。发生这种情况的原因是ebcli解析您的dockerfile以检索公开的端口。因为ebcli将EXPOSE指令作为文字字符串读取,所以当您在EXPOSE指令中引用环境变量时,ebcli会尝试将该字符串作为-p 3001:${PORT}传递给端口选项。

要解决此问题,您需要修改EXPOSE指令以显式公开值3000。

示例:

代码语言:javascript
复制
EXPOSE 3000

可以进行一些增强来改善这种体验。请随时在ebcli github repository上报告这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61354990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档