首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将构建docker容器的命令放入dockerfile?

如何将构建docker容器的命令放入dockerfile?
EN

Stack Overflow用户
提问于 2021-01-04 13:50:00
回答 3查看 103关注 0票数 1

我有脚本:docker run -it -p 4000:4000 bitgosdk/express:latest --disablessl -e test如何把这个命令带参数放到dockerfile中?

代码语言:javascript
复制
FROM bitgosdk/express:latest
EXPOSE 4000
???
EN

回答 3

Stack Overflow用户

发布于 2021-01-04 14:17:44

检查了你的Dockerfile contents

在容器内部运行的命令是:

代码语言:javascript
复制
/ # ps -ef | more
PID   USER     TIME  COMMAND
    1 root      0:00 /sbin/tini -- /usr/local/bin/node /var/bitgo-express/bin/bitgo-express --disablessl -e test

该命令是这样的,因为Dockerfile文件中设置的入口点是ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/node", "/var/bitgo-express/bin/bitgo-express"],参数--disablessl -e test是在运行docker run命令时提供的参数。

可以使用CMD在Dockerfile文件中设置--disablessl -e test参数

代码语言:javascript
复制
CMD ["--disablessl", "-e","test"]

新Dockerfile文件

代码语言:javascript
复制
FROM bitgosdk/express:latest
EXPOSE 4000
CMD ["--disablessl", "-e","test"]

请参阅此链接以了解difference between entrypoint and cmd

票数 2
EN

Stack Overflow用户

发布于 2021-01-04 14:17:30

你不需要。这就是docker-compose的用途。

例如,创建一个包含如下内容的docker-compose.yml

代码语言:javascript
复制
version: "3.8"

services:
  test:
    image: bitgodsdk/express:latest
    command: --disablessl -e test
    ports:
    - "4000:4000"

然后在终端中执行以下命令,访问名为test的服务的交互终端。

docker-compose run test

票数 1
EN

Stack Overflow用户

发布于 2021-01-05 06:56:08

即使@mchawre's answer似乎直接回答了OP的问题“从语法上讲”(就像Dockerfile被问到的那样),docker-compose.yml绝对是使docker run命令以声明的方式(YAML文件)可重现的方法,尽管它可能是自定义的。

作为对@ChrisBecke's answer的补充,请注意这个YAML文件的编写是可以自动化的。例如,参见自由/开源软件(在麻省理工学院许可下) https://github.com/magicmark/composerize

下面的代码片段是使用附带的webapp https://composerize.com/从以下docker run命令自动生成的

docker run -it -p 4000:4000 bitgosdk/express:latest

代码语言:javascript
复制
version: '3.3'
services:
    express:
        ports:
            - '4000:4000'
        image: 'bitgosdk/express:latest'

我故意省略了CMD参数--disablessl -e test,因为composerize似乎不支持这些额外的参数。这可能听起来像是一个bug (和FTR a related issue is opened),但同时它可能只是被视为@DavidMaze's comment…的一个特性

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

https://stackoverflow.com/questions/65558209

复制
相关文章

相似问题

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