Предоставьте gitlab ci / cd тип файла, чтобы Dockerfile мог записать файл в рабочий каталог - PullRequest
0 голосов
/ 30 октября 2019

Я использую тип файла gitlab ci / cd для хранения файла (подробности см. Здесь: https://docs.gitlab.com/ee/ci/variables/README.html#file-type),, который затем я хочу показать в свой Dockerfile и сделать так, чтобы он записывал в мой WORKDIR после его копирования. некоторые другие файлы в.

Итак, в моих настройках gitlab у меня есть 2 типа файлов:

  • Config
  • FlatConfig

затеммой .gitlab-ci.yml выглядит так

image: tmaier/docker-compose:latest
variables:
  GIT_SUBMODULE_STRATEGY: recursive
  DOCKER_IMAGE_LABEL: ${CI_COMMIT_REF_NAME}
  DOCKER_REGISTRY: "registry.example.net:5000/"
  DOCKER_STACK: 123_test-service

stages:
  - build
  - deploy

service_build:
  stage: build
  script:
    - docker build -f Dockerfile --no-cache -t ${DOCKER_REGISTRY}reg/test-service:${DOCKER_IMAGE_LABEL:-latest} .
    - docker push ${DOCKER_REGISTRY}reg/test-service:${DOCKER_IMAGE_LABEL:-latest}

мой docker-compose.yml выглядит следующим образом:

version: "3.7"

services:
  test-service:
    image: ${DOCKER_REGISTRY}reg/test-service:${DOCKER_IMAGE_LABEL:-latest}
    init: true
    build:
      context: .
    restart: on-failure
    environment:
      - Config
      - FlatConfig

, а мой Dockerfile выглядит следующим образом:

FROM ubuntu:bionic

RUN useradd -ms /bin/bash --uid 999 import

RUN apt-get update && apt-get -qq install \
    wget

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY . .

RUN ls -la

RUN cat ${Config} > Config.json

RUN ls -la

В настоящее время кажется, что это выдает

-rw-r - r-- 1 корневой корень 0 октября 30 16:31 Config.json

...