4

我正在尝试让我的应用程序 dockerize 因为我一直在关注官方的 openresty dockerfile。我系统中的操作系统是 Ubuntu 16.04 64 位。

我已经使用这个 cmd 提取了该图像。

docker pull openresty/openresty:1.11.2.3-xenial

现在我想使用这个图像并想要制作简单的 hello world 应用程序。为此,我创建了我的工作目录,创建了一个自定义 dockerfile 并用它构建了我的自定义映像。最后我运行那个图像。以下是我的 dockerfile 内容。

FROM openresty/openresty:1.11.2.3-xenial

EXPOSE 8080
CMD nginx -p `pwd` -c nginx.conf

nginx.conf

worker_processes  1;
error_log stderr notice;
events {
    worker_connections 1024;
}
http {
    include /usr/local/openresty/nginx/conf/mime.types;
    server {
        listen 8888;
        location / {
            default_type text/html;
            content_by_lua_file "app.lua";
        }
    }
}

应用程序.lua

ngx.say('Hello World!')
ngx.exit(200)

构建镜像

docker build -t user/openresty .

启动容器

docker run rahul/openresty

当我尝试启动容器时,它给了我一个类似 nginx: invalid option: "/bin/sh" 的错误

我不知道我的方向是对还是错。

更新:

docker run -it -p 8888:80 -v /home/software/docker/openresty:/usr/local/openresty/nginx/html:ro openresty/openresty:1.11.2.3-xenial

我刚刚使用了这个 CLI,它开始显示我创建的 index.html。我再次尝试使用下面的 CLI 链接我的自定义 nginx.conf,但它不起作用。

docker run -it -p 8888:8888 -v /home/software/docker/openresty:/usr/local/openresty/nginx/html:ro -v /home/software/docker/openresty/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro openresty/openresty:1.11.2.3-xenial

docker run -it -p 8888:8888 -v $(pwd):/app openresty/openresty:1.11.2.3-xenial -p /app -c nginx.conf

使用以下命令它开始工作,但有人可以解释一下吗?

docker run -it -p 8888:8888 -v $(pwd):/app openresty/openresty:1.11.2.3-xenial -p /app -c nginx.conf
4

1 回答 1

0

你有错误的端口设置,看:

暴露 8080 != 听 8888;

于 2019-10-02T21:38:58.213 回答