我是刚接触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
Avoir un fichier docker ne signifie pas nécessairement que vous disposez d'un fichier image. Vous pouvez créer le fichier image via docker build -t ${tagName} . Créez ensuite un CONTAINER via le fichier image, et votre conteneur pourra éventuellement s'exécuter. Pour votre exemple actuel, vous pouvez terminer le processus ci-dessus avec la commande suivante :
Avant d'écrire le Dockerfile vous-même, il est préférable de pratiquer d'abord le processus de création du Dockerfile.
Selon votre propre logique, créez et entrez le conteneur via l'image de base, exécutez d'abord les commandes que vous souhaitez écrire dans le Dockerfile, voyez s'il y a des problèmes, résolvez ces problèmes, puis résumez toutes les commandes et écrivez-les dans un Dockerfile.
Au lieu d'écrire un Dockerfile directement sur papier.
L'erreur ici est évidente. Le script de démarrage de Tomcat
/usr/local/tomcat/bin/startup.sh
n'existe pas, le conteneur ne peut donc pas être démarré. Veuillez d'abord vous entraîner à créer Tomcat dans un conteneur, voir comment Tomcat doit être démarré, quels problèmes manquent au démarrage, résoudre tous les problèmes et le Tomcat que vous avez construit peut s'exécuter, puis écrire ces éléments dans un Dockerfile. Écrire un Dockerfile dans un espace vide semble être très puissant et permet d'économiser de la pratique, mais en fait ce n'est qu'une perte de temps.