【问题标题】:Dockerfile custom commands/directivesDockerfile 自定义命令/指令
【发布时间】:2015-09-28 09:59:22
【问题描述】:

我一直在阅读 Docker 文档,但似乎无法确定是否可以创建自定义命令/指令。基本上我需要向外部服务发出 HTTP 请求以检索需要包含在我的容器中的一些资产。我不想使用 Volumes 引用它们,而是想在构建过程中有效地将它们注入容器,有点像依赖注入。

【问题讨论】:

  • 如果你想从 http url 从 Dockerfile 下载文件,你可以试试这个。 "运行 wget urlABC.com/abc.gz"
  • 这给了我一些帮助,但是我需要运行 HTTP GET 和 POST 的组合,包括身份验证。理想情况下,我想创建一个扩展来处理所有必需的逻辑并将其作为自定义命令调用
  • 你可以写一个shell脚本,把所有的逻辑放在里面,然后从Dockerfile调用
  • 这个是在容器内执行还是在容器外执行?假设这也可能是 Python 或 Golang ?
  • 它将在容器内。我用示例编辑了答案。

标签: dependency-injection docker containers dockerfile


【解决方案1】:

假设您指的是使用 http (HTTP GET) 作为问题中的示例之一下载一些文件。你可以试试这个。

RUN wget https://wordpress.org/plugins/about/readme.txt

RUN curl https://wordpress.org/plugins/about/readme.txt

带有下载 shell 脚本的示例 Dockerfile

PROJ-DIR
    - files
        - test.sh
    - Dockerfile

文件/test.sh

#!/bin/sh

wget https://wordpress.org/plugins/about/readme.txt

Dockerfile

FROM centos:latest

COPY files/test.sh /opt/
RUN chmod u+x /opt/test.sh

RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
RUN yes | yum install wget

RUN /opt/test.sh
RUN rm /opt/test.sh

构建镜像

docker build -t test_img .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2015-11-16
    • 2021-04-07
    • 2023-04-04
    • 2012-12-14
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多