[英]Openresty Docker container when try RUN, return nginx: invalid option: “/bin/sh”
I try build an imagen with openresty:centos and the imagen is Successfully built, but when try tu RUN a container with this image the container STOP ans show this message: 我尝试使用openresty:centos构建一个imagen,并且该imagen已成功构建,但是当您尝试使用此图像运行一个容器时,容器STOP ans显示以下消息:
nginx: invalid option: "/bin/sh" nginx:无效选项:“ / bin / sh”
FROM openresty/openresty:1.11.2.3-centos
RUN yum install openssl-devel -y
RUN /usr/local/openresty/luajit/bin/luarocks install lua-cjson
RUN /usr/local/openresty/luajit/bin/luarocks install lua-resty-jwt
RUN /usr/local/openresty/luajit/bin/luarocks install lua-resty-redis
RUN /usr/local/openresty/luajit/bin/luarocks install luacrypto
RUN /usr/local/openresty/luajit/bin/luarocks install lualogging
RUN /usr/local/openresty/luajit/bin/luarocks install luaposix
RUN /usr/local/openresty/luajit/bin/luarocks install uuid
RUN PATH=/usr/local/openresty/nginx/sbin:$PATH
RUN export PATH
COPY ./src/api-gw/conf/nginx.conf /usr/local/openresty/nginx/conf
COPY ./src/api-gw/lib/authentication.lua /usr/local/openresty/lualib
COPY ./src/api-gw/lib/logger.lua /usr/local/openresty/lualib
COPY ./src/api-gw/lib/redis.lua /usr/local/openresty/lualib
COPY ./src/api-gw/lib/uses_cases.lua /usr/local/openresty/lualib
COPY ./src/api-gw/lib/utils.lua /usr/local/openresty/lualib
RUN mkdir /home/app
COPY ./src/api-gw/api-gw.lua /home/app
EXPOSE 80
CMD nginx -p /usr/local/openresty/nginx -c nginx.conf
command for build image: 用于生成映像的命令:
docker build -t openresty_test .
command for RUN a container: 运行容器的命令:
docker run -it -p 8888:80 --name img_resty openresty_test
response: 响应:
nginx: invalid option: "/bin/sh"
According to Dockerfile , you should override ENTRYPOINT
rather than CMD
. 根据Dockerfile ,您应该覆盖ENTRYPOINT
而不是CMD
。 See Docker documentation for details. 有关详细信息,请参见Docker文档 。
ENTRYPOINT
and CMD
are combined, so you are actually trying to execute: ENTRYPOINT
和CMD
相结合,因此您实际上是在尝试执行:
$ /usr/local/openresty/bin/openresty -g 'daemon off;' /bin/sh -c 'nginx -p /usr/local/openresty/nginx -c nginx.conf'
nginx: invalid option: "/bin/sh"
I would also recommend you to use exec form of CMD
/ ENTRYPOINT
( ["executable","param1","param2"]
, not executable param1 param2
) 我也建议您使用CMD
/ ENTRYPOINT
exec形式 ( ["executable","param1","param2"]
,而不是executable param1 param2
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.