基本Dockerfile没有运行CMD命令

时间:2016-02-09 00:58:49

标签: docker dockerfile docker-compose

我有一个简单的Dockerfile似乎没有执行CMD命令。

FROM nginx

#Expose port 80
EXPOSE 80


#Start nginx server
#RUN service nginx start

COPY startup_nginx.sh /startup_nginx.sh
RUN chmod +x /startup_nginx.sh

#CMD ["/usr/bin/wc","--help"]
CMD ['/startup_nginx.sh']

可能是什么问题?

2 个答案:

答案 0 :(得分:5)

事实证明,我需要双引号而不是单引号。

$getURLVar = explode("/",$_SERVER['REQUEST_URI']);
if($getURLVar[1] == "temp"){
   $uri_based_style = 'style-temp.css'; 
} else {
   $uri_based_style = 'style.css';  
}

function theme_enqueue_styles() {
    // global in the variable here so you can use it in the function
    global $uri_based_style;  

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . $uri_based_style,
        array( $parent_style )
    );
}

注意 这在文档中并不明确,并且似乎是基本的,应该拼写在某处,因为没有错误消息。它无声地失败,这使得调试非常困难,因为启动脚本是创建正在运行的进程所需的,因此容器不会退出。

答案 1 :(得分:0)

注意:在ENTRYPOINTCMD等JSON表达式中使用单引号时,有issue 5701请求发出docker build错误。

PR 8486应该解决这个问题,但它只会添加一个测试用例,而不是实际的错误本身 它确实解释了这个问题:

  

此测试用例应该生成错误,因为我们在CMD上传入的JSON数组使用单引号而不是双引号(per the JSON spec)。   这意味着我们将其解释为"字符串"而不是" JSON数组"并传递给" sh -c"它应该barf