在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig

添加下面两句到 #!/bin/bash 之后。


# chkconfig: 2345 10 90 
# description: myservice ....


注:chkconfig命令对应的目录是/etc/init.d文件夹下,需要将自启动脚本拷贝至该文件目录下。下面附一个Dockerfile文件

其中2345是默认启动级别,级别有0-6共7个级别。

  等级0表示:表示关机   

  等级1表示:单用户模式   

  等级2表示:无网络连接的多用户命令行模式   

  等级3表示:有网络连接的多用户命令行模式   

  等级4表示:不可用   

  等级5表示:带图形界面的多用户模式   

  等级6表示:重新启动

10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。

Dockerfile文件


#base image
FROM centos
# MAINTAINER
MAINTAINER lidd95@chinaunicom.cn
#RUN 执行以下命令
RUN mkdir /home/docker
#相当于cd
WORKDIR /home/docker

#ADD 文件放在当前目录下,拷过去会自动解压
ADD minecraft_server.1.10.2.jar /home/docker
ADD mc_start.sh /home/docker
#RUN 执行以下命令
#安装jdk
RUN yum -y install java-1.8.0-openjdk
RUN java -Xms120m -Xmx160m -jar /home/docker/minecraft_server.1.10.2.jar nogui
RUN sed -i 's/eula = false/eula = true/g' ./eula.txt
RUN chmod 777 /home/docker/mc_start.sh\
&& cp -rf /home/docker/mc_start.sh /etc/profile.d\
&& cp -rf /home/docker/mc_start.sh /etc/init.d\
WORKDIR /etc/profile.d
RUN chkconfig --add /etc/profile.d/mc_start.sh\
&&chkconfig /etc/profile.d/mc_start.sh on
#EXPOSE 映射端口
EXPOSE 25565