Как сохранить данные из док-контейнера на локальном хосте? - PullRequest
0 голосов
/ 12 октября 2019

Я запускаю R-Studio в контейнере на GitLab. R-Studio собирает много CSV и PDF файлов. Когда я запускаю

docker run --rm -it registry.gitlab.com/user/paperboy /bin/bash

, я могу найти в папках / home / output / csv и / home / output / pdf файлы. Я сохраню все эти файлы в файлах / output / csv и / output / pdf на хосте, в моем случае на GitLab. Вопрос в том, как сохранить данные вне контейнера Docker?

Вот мой Dockerfile.

FROM rocker/r-base:latest
RUN apt-get update  \
    && apt-get install -yq --no-install-recommends groff \
    && rm -rf /var/lib/apt/lists/*

# Create directories
RUN mkdir -p /home/output/ /home/output/csv/ /home/output/pdf/ /home/script/

WORKDIR /home/script

# Install R-packages
COPY /src/install_packages.R /home/script/install_packages.R
RUN Rscript /home/script/install_packages.R

# Copy data
COPY /src/pairs.csv /home/script/pairs.csv
COPY /src/master.R /home/script/master.R
COPY /src/paperboy.ms /home/script/paperboy.ms

# Run the script
RUN ["Rscript", "master.R"]
$ docker run -d
-v $(pwd)/output/:/home/output
-v $(pwd)/output/csv/:/home/output/csv 
-v $(pwd)/output/pdf/:/home/output/pdf
$CONTAINER_IMAGE/$DOCKER_IMAGE
5d11eb7e3d93e8b98b6381f1970c25be426ff67abef5e378b715263f174849c9

Это часть из .gitlab-ci.yml

run:
  stage: run
  script:
    - git remote set-url origin https://$GIT_CI_USER:$GIT_CI_PASS@gitlab.com/$CI_PROJECT_PATH.git
    - git config --global user.name ""
    - git config --global user.email ""
    - git checkout
    - docker login registry.gitlab.com --username gitlab+deploy-token-aaaa --password bbbb
    - docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
    - docker image ls
    - docker run -t -d
      -v $(pwd)/output/:/home/output
      -v $(pwd)/user/paperboy/output/csv/:/home/output/csv
      -v $(pwd)/user/paperboy/output/pdf/:/home/output/pdf
      $CONTAINER_IMAGE/$DOCKER_IMAGE
    - rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
    - pwd
    - ls -la
    - ls -laR output
    - git status
  only:
    - master

Папки csv и pdf пусты.

$ ls -laR output
    output:
    total 32
    drwxr-xr-x    4 root     root          4096 Oct  8 11:37 .
    drwxrwxrwx    5 root     root          4096 Oct  8 11:37 ..
    drwxr-xr-x    2 root     root          4096 Oct  8 11:37 csv
    drwxr-xr-x    2 root     root          4096 Oct  8 11:37 pdf

    output/csv:
    total 16
    drwxr-xr-x    2 root     root          4096 Oct  8 11:37 .
    drwxr-xr-x    4 root     root          4096 Oct  8 11:37 ..

    output/pdf:
    total 16
    drwxr-xr-x    2 root     root          4096 Oct  8 11:37 .
    drwxr-xr-x    4 root     root          4096 Oct  8 11:37 ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...