ДОБАВЬТЕ инструкцию docker, не работающего на машине Windows - PullRequest
0 голосов
/ 13 марта 2019

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

FROM openjdk:11.0.2-jre-slim


EXPOSE 8080
EXPOSE 4040

VOLUME /data

RUN apt-get update && apt-get install -y dos2unix

# main application JAR
ADD target/service.jar app.jar
# wrapper that executes the JVM
ADD bin/run.sh run.sh
#add the ui dist folder
ADD target/static static


RUN dos2unix /run.sh && apt-get --purge remove -y dos2unix && rm -rf /var/lib/apt/lists/*

ADD bin/java-buildpack-memory-calculator-linux-3.9.0 memory-calculator

RUN chmod +x run.sh
RUN chmod +x memory-calculator


ENTRYPOINT exec ./run.sh

Первая команда работает нормально, но вторая команда ADD target/static static выдает ошибку

ADD failed: stat /var/lib/docker/tmp/docker-builder231151249/target/static: no such file or directory

Та же команда работает на Mac OS, но не на Windows. Не уверен, что с ним не так? Структура папок

|
|
|-------Dockerfile
|-------target
          |
          |
          |----------static
                        |
                        |
                        |---------html,js files

1 Ответ

0 голосов
/ 13 марта 2019

Попробуйте добавить ./target/static в Dockerfile, например:

# wrapper that executes the JVM 
ADD bin/run.sh run.sh 
#add the ui dist folder 
ADD ./target/static static

Также попробуйте использовать команду COPY вместо add:

  # wrapper that executes the JVM 
    COPY  bin/run.sh run.sh 
    #add the ui dist folder 
    COPY ./target/static/ static/

и выполните команду Docker, например:

docker build --no-cache ....

Попробуйте добавить это в Dockerfile

 RUN mkdir -p /target/static/
 # wrapper that executes the JVM 
 COPY  bin/run.sh run.sh 
 #add the ui dist folder 
 COPY ./target/static/ /target/static/

Результат теста сборки:

Step 5/5 : ADD ./target/static/ static
 ---> 712e06b2d81c
Successfully built 712e06b2d81c
Successfully tagged test:latest

Единственное, что у меня есть, - это проверить окончания строк и убедиться, что у вас нетдополнительные пробелы в именах файлов, такие как ADD target / static или пробел в конце static

, если вы хотите, чтобы файлы target/static/ находились в /staticв контейнере?или ... в /target/static в контейнере

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