Загрузите данные в Dockerfile и используйте их в объеме - PullRequest
0 голосов
/ 06 января 2019

Я хочу клонировать git-репо, установить новый neos.io или что-то подобное в Dockerfile через RUN. Позже я хочу смонтировать каталог, включая файлы, в мою локальную файловую систему. Согласно эта проблема github невозможна, так как монтирование тома удалит данные.

Как заархивировать требуемое поведение? Использование CMD или ENTRYPOINT приведет к клонированию git-репозитория, например. на каждом старте. Это не обязательно.

Dockerfile

FROM debian:stable

RUN apt-get update \
  && apt-get install -y git

WORKDIR /home/app

RUN git clone https://github.com/libgit2/libgit2

CMD ["sleep", "infinity"]

докер-compose.yml

version: "2"
services:
  app:
    build: .
    # Uncomment this will remove data on docker-compose up
    # volumes:
    #   - ./app:/home/app

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Dockerfile

FROM debian:stable

RUN apt-get update \
  && apt-get install -y git

WORKDIR /home/app

RUN git clone https://github.com/libgit2/libgit2.git

CMD ["cp", "-r", "libgit2", "/tmp"]

докер-compose.yml

version: "2"
services:
  app:
    build: .
    volumes:
      - ./app:/tmp
0 голосов
/ 06 января 2019

Вы можете клонировать репо в произвольный каталог, скажем, например, /home/app-clone, затем в вашем ENTRYPOINT или CMD вы копируете файлы из этого каталога в каталог томов, что-то вроде:

.
.
RUN git clone https://github.com/libgit2/libgit2 /home/app-clone
CMD cp -r /home/app-clone /home/app && sleep infinity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...