2015-09-28 144 views
2

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

+0

,如果你打算从Dockerfile从HTTP URL下载的文件,你可以试试这个。 “RUN wget http://www.urlABC.com/abc.gz” – spectre007

+0

这让我有些担心,但是我需要运行HTTP GET和POST的组合,包括身份验证。理想情况下,我想创建一个处理所有必需逻辑的扩展,并将其称为自定义命令 – user1513388

+1

您可以编写shell脚本并将所有逻辑放入其中并从Dockerfile中调用它 – spectre007

回答

4

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

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

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

与下载的shell脚本

PROJ-DIR 
    - files 
     - test.sh 
    - Dockerfile 

文件/ test.sh的例子Dockerfile

#!/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 .