Докер КОПИЯ не cp - PullRequest
       1

Докер КОПИЯ не cp

0 голосов
/ 22 июня 2019

Я хотел бы создать свой первый образ Docker, содержащий Apache Tomcat и развернутое веб-приложение. Мой Dockerfile очень маленький, основан на образе Tomcat: 8.0 и должен копировать WAR-файл в базу приложений Tomcat.

Сборка изображения сообщает об успехе, но файл нигде не найден в контейнере.

Копирование с хоста в контейнер работает без проблем, используя "docker cp":

[root@edubox dock]# docker cp jdbcdemo_3.war 15dd44bbf992:/usr/local/tomcat/webapps/

Мой Dockerfile:

# we are extending everything from tomcat:8.0 image ...
FROM tomcat:8.0

MAINTAINER simo

# COPY path-to-your-application-war path-to-webapps-in-docker-tomcat
COPY ./jdbcdemo_3.war /usr/local/tomcat/webapps/

EXPOSE 8082

Сборка изображения:

root@edubox dock]# docker image build -t simo/jdbcdemo_3 --tag=recent ./
Sending build context to Docker daemon 10.24 kB
Step 1/4 : FROM tomcat:8.0
 ---> ef6a7c98d192
Step 2/4 : MAINTAINER simo
 ---> Using cache
 ---> 54d824d7258b
Step 3/4 : COPY ./jdbcdemo_3.war /usr/local/tomcat/webapps/
 ---> Using cache
 ---> f94330423a93
Step 4/4 : EXPOSE 8082
 ---> Running in 74b6dd0364b2
 ---> 9464f11ac18e
Removing intermediate container 74b6dd0364b2
Successfully built 9464f11ac18e

Я ожидаю, что COPY поместит файл туда, где указано, или сообщение об ошибке, из-за которого это не работает.

Ответы [ 4 ]

0 голосов
/ 24 июня 2019

Привет и большое спасибо за совет.Вопрос был тривиальным в конце.Я не проверял правильный контейнер.

Я не осознавал, что нужно выбирать только что созданный образ, запускать контейнер с этим изображением и только потом искать изменения, описанные в файле Docker в этом контейнере.

Я искал родительский контейнер, который, как я теперь понимаю, не мог сработать.

Извините, что потратил ваше время; -)

0 голосов
/ 23 июня 2019

проверьте сторону разрешения файла.

Вы можете дать полное разрешение и протестировать один раз. (Пользователь: группа)

0 голосов
/ 23 июня 2019

попробуйте это: COPY jdbcdemo_3.war / tmp

В вашем Dockerfile. И соберите образ и проверьте в каталоге / tmp. Если файл успешно скопирован, дайте разрешение на / usr / local / tomcat / webapps / Или сначала скопируйте в / tmp, а затем скопируйте из / tmp в / usr / local / tomcat / webapps /. Использование команды COPY в Dockerfile

0 голосов
/ 22 июня 2019

Пожалуйста, попробуйте так,

Храните "jdbcdemo_3.war", где находится ваш Dockerfile. И внесите это изменение в Dockerfile.

(удалить ./ из вашего Dockerfile) как,

COPY jdbcdemo_3.war / usr / local / tomcat / webapps /

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