我是刚接触docker的小白,今天试着用dockerfile 构建一个tomcat镜像
结果在docker run 镜像时 报错
/bin/sh: /usr/local/tomcat/bin/startup.sh: No such file or directory
我的dockerfile 文件内容如下: 请高手指点一下。谢谢
# tomcat
#
# VERSION 1.0
# 使用centos作为基准镜像
FROM centos
MAINTAINER lilin
# 使用root用户
USER root
ADD ./jdk-8u111-linux-x64.rpm /root
ADD ./tomcat /usr/local
#set environment variable
ENV JAVA_HOME /root/jdk-8u111-linux-x64
ENV PATH $JAVA_HOME/bin:$PATH
# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行
ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -F /usr/local/tomcat/logs/catalina.out
# 对外(其他容器)开放8080端口
EXPOSE 88
Mempunyai fail docker tidak semestinya bermakna anda mempunyai fail imej. Anda boleh membina fail imej melalui docker build -t ${tagName} . Kemudian buat CONTAINER melalui fail imej dan bekas anda akhirnya akan dapat dijalankan. Untuk contoh semasa anda, anda boleh melengkapkan proses di atas dengan arahan berikut:
Sebelum menulis fail Docker sendiri, sebaiknya amalkan proses pembinaan fail Docker terlebih dahulu.
Mengikut logik anda sendiri, buat dan masukkan bekas melalui imej asas, laksanakan arahan yang anda ingin tulis dalam Dockerfile terlebih dahulu, lihat jika terdapat sebarang masalah, dan selesaikan masalah ini, dan kemudian ringkaskan semua arahan dan tuliskannya ke dalam Dockerfile.
Daripada menulis fail Docker terus di atas kertas.
Ralat di sini adalah jelas Skrip permulaan Tomcat
/usr/local/tomcat/bin/startup.sh
tidak wujud, jadi bekas tidak boleh dimulakan. Sila berlatih membina Tomcat dalam bekas terlebih dahulu, lihat cara Tomcat harus dimulakan, apakah masalah yang hilang dalam permulaan, selesaikan semua masalah dan Tomcat yang anda bina boleh dijalankan, dan kemudian tulis perkara ini ke dalam Dockerfile. Menulis Dockerfile dalam ruang kosong nampaknya sangat berkuasa dan menjimatkan latihan, tetapi sebenarnya ia hanya membuang masa.