Maison  >  Questions et réponses  >  le corps du texte

dockerfile - docker run 报错文件路径不存在

我是刚接触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
为情所困为情所困2706 Il y a quelques jours930

répondre à tous(2)je répondrai

  • 仅有的幸福

    仅有的幸福2017-04-25 09:05:20

    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 :

    
    sudo docker build -t mytomcat .
    sudo docker run -p 8080:8080 mytomcat  //在这里你可以加上特定参数
    

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-25 09:05:20

    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.

    répondre
    0
  • Annulerrépondre