![](/img/trans.png)
[英]Dockerfile Image The command '/bin/sh -c apt-get install -y mysqld-server' returned a non-zero code: 100
[英]Error : The command '/bin/sh returned a non-zero code: 1
当我试图通过运行由我的 ubuntu 16.04 中的前一个团队编写的脚本来构建我的一个项目时
sudo ./build
我收到错误:
Step 8/24 : RUN service mysql start
---> Running in 3djjk653642d
* Starting MySQL database server mysqld
...fail!
The command '/bin/sh -c service mysql start' returned a non-zero code: 1
我的 Dockerfile 看起来像:
COPY schema.sql /tmp/schema.sql
### User with ALL accesses (winter/toor)
RUN service mysql start
RUN mysql < /tmp/schema.sql
RUN mysql -e "CREATE USER 'winter'@'%' IDENTIFIED BY 'toor'"
RUN service mysql start && mysql -e "GRANT ALL ON its.* TO 'winter'@'%'"
请问,有什么帮助吗?
Dockerfile中的RUN
语句用于运行将对文件系统产生一定影响的命令,然后将其保存在另一层中。
启动这样的服务是不正常的,因为内存(服务正在运行的地方)的状态没有存储在映像中,它只能在正在运行的容器中运行。
进行此类操作的通常方法是编写一个bash脚本(称为start.sh
或类似名称),将其复制到映像中,然后从ENTRYPOINT
末尾的ENTRYPOINT
/ CMD
行运行。 当在docker run ...
命令中创建容器时将运行该命令
start.sh:
service mysql start
mysql < /tmp/schema.sql
mysql -e "CREATE USER 'winter'@'%' IDENTIFIED BY 'toor'"
service mysql start && mysql -e "GRANT ALL ON its.* TO 'winter'@'%'"
Dockerfile:
COPY schema.sql /tmp/schema.sql
COPY start.sh /
ENTRYPOINT ["/start.sh"]
请在此处阅读有关ENTRYPOINT
和CMD
之间的区别以及何时应分别使用的信息。
最好还是使用Docker Hub中的官方MySQL映像。 通过使用环境变量,您可能可以实现所需的全部功能。
这个 docker 文件帮助了我:
yum -y install nginx' returned a non-zero code: 1 what is the issue i have got error in dockerfile
FROM centos:7
MAINTAINER linuxtechlab
LABEL Remarks="This is a dockerfile example for Centos system"
RUN yum -y update
RUN yum -y install httpd
RUN yum clean all
RUN yum -y install nginx
EXPOSE 80
#ENV HOME /root
#WORKDIR /root
#ENTRYPOINT ["ping"]
#CMD ["google.com"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.