Добавление файлов в экземпляр докера не работает - PullRequest
0 голосов
/ 23 декабря 2018

В моем файле докера есть следующий фрагмент:

...
 ADD app.war /opt/apache-tomcat-8.5.14/webapps/app.war
...

Однако, введите изображение докера как:

docker exec -it tomcat /bin/sh

и выполните ls для webappsпапка, файл не там.Файл в моей локальной ОС windows находится в той же папке, что и файл dockerfile.Любая подсказка о том, почему это происходит?

РЕДАКТИРОВАТЬ: Однако, используя команду cp в моем Windows cmd, он работает правильно после проверки в контейнере.

Dockerfile:

FROM alpine:latest
MAINTAINER Adilson Cesar <adilsonbna@gmail.com>

# Expose Web Port
EXPOSE 8080

# Set environment
ENV JAVA_HOME /opt/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
ENV JAVA_PACKAGE server-jre

ENV TOMCAT_VERSION_MAJOR 8
ENV TOMCAT_VERSION_FULL  8.5.14
ENV CATALINA_HOME /opt/tomcat

# Download and install Java
RUN apk --update add openjdk8-jre &&\
    mkdir -p /opt/jdk &&\
    ln -s /usr/lib/jvm/java-1.8-openjdk/bin /opt/jdk

# Download and install Tomcat
RUN apk add --update curl &&\
  curl -LO https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_VERSION_MAJOR}/v${TOMCAT_VERSION_FULL}/bin/apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz &&\
  curl -LO https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_VERSION_MAJOR}/v${TOMCAT_VERSION_FULL}/bin/apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz.md5 &&\
  md5sum -c apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz.md5 &&\
  gunzip -c apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz | tar -xf - -C /opt &&\
  rm -f apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz apache-tomcat-${TOMCAT_VERSION_FULL}.tar.gz.md5 &&\
  ln -s /opt/apache-tomcat-${TOMCAT_VERSION_FULL} /opt/tomcat &&\
  rm -rf /opt/tomcat/webapps/examples /opt/tomcat/webapps/docs &&\
  apk del curl &&\
  rm -rf /var/cache/apk/*

 ADD app.war /opt/apache-tomcat-8.5.14/webapps/

# Launch Tomcat on startup
CMD ${CATALINA_HOME}/bin/catalina.sh run

Спасибо!

1 Ответ

0 голосов
/ 23 декабря 2018

Хотя в докерских документах указано иное

If <dest> does not end with a trailing slash, it will be considered a regular file and the contents of <src> will be written at <dest>

Попробуйте, удалив имя файла назначения.Это должно работать.

ADD app.war /opt/apache-tomcat-8.5.14/webapps/

Также из Docker Best Practices рекомендуется использовать COPY вместо ADD, если вы просто копируете локальные файлы и не играете судаленные URL.

Although ADD and COPY are functionally similar, generally speaking, COPY is preferred. That’s because it’s more transparent than ADD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...