add storage class, del legacy
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
- DBTABLE - таблица (если не используется, как например в монге, ставим "1")
|
- DBTABLE - таблица (если не используется, как например в монге, ставим "1")
|
||||||
- STORAGE_HOST - можно указать свое s3 хранилище вида `s3.domain.com` либо амазоновское
|
- STORAGE_HOST - можно указать свое s3 хранилище вида `s3.domain.com` либо амазоновское
|
||||||
- STORAGE_REGION - по умолчанию: us-west
|
- STORAGE_REGION - по умолчанию: us-west
|
||||||
|
- STORAGE_CLASS - STANDARD_IA (холодное) или STANDARD_IA (обычное)
|
||||||
- STORAGE_PATH - путь, куда складывать архив вида `<bucket/folder>`
|
- STORAGE_PATH - путь, куда складывать архив вида `<bucket/folder>`
|
||||||
- ACCOUNT_ID - логин в хранилище
|
- ACCOUNT_ID - логин в хранилище
|
||||||
- APPLICATION_KEY - пароль в хранилище
|
- APPLICATION_KEY - пароль в хранилище
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
source lib/lib.sh
|
source lib/lib.sh
|
||||||
|
|
||||||
ENVS=(PROJECT_NAME DBTYPE DBHOST DBUSER DBPASS DBTABLE STORAGE_HOST STORAGE_REGION STORAGE_PATH ACCOUNT_ID APPLICATION_KEY)
|
ENVS=(PROJECT_NAME DBTYPE DBHOST DBUSER DBPASS DBTABLE STORAGE_HOST STORAGE_PATH ACCOUNT_ID APPLICATION_KEY)
|
||||||
|
|
||||||
for ENV in "${ENVS[@]}"; do
|
for ENV in "${ENVS[@]}"; do
|
||||||
if [[ -z "${!ENV+x}" ]]; then
|
if [[ -z "${!ENV+x}" ]]; then
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ S3_HOST_BASE=s3.amegaserver.com
|
|||||||
S3_REGION=ru-nsk
|
S3_REGION=ru-nsk
|
||||||
S3_ACCOUNT_ID=
|
S3_ACCOUNT_ID=
|
||||||
S3_APPLICATION_KEY=
|
S3_APPLICATION_KEY=
|
||||||
|
S3_STORAGE_CLASS=
|
||||||
@@ -4,6 +4,7 @@ S3_HOST_BASE=${STORAGE_HOST:-s3.amazonaws.com}
|
|||||||
S3_REGION=${STORAGE_REGION:-''}
|
S3_REGION=${STORAGE_REGION:-''}
|
||||||
S3_REMOTE_DIR=${STORAGE_PATH#*/}
|
S3_REMOTE_DIR=${STORAGE_PATH#*/}
|
||||||
S3_BUCKET=${STORAGE_PATH%%/*}
|
S3_BUCKET=${STORAGE_PATH%%/*}
|
||||||
|
S3_STORAGE_CLASS=${STORAGE_CLASS:-STANDARD_IA}
|
||||||
|
|
||||||
# Добавляем в конце '/'
|
# Добавляем в конце '/'
|
||||||
if [[ -n "${S3_REMOTE_DIR}" ]] && [[ ${S3_REMOTE_DIR} != */ ]]; then S3_REMOTE_DIR="${S3_REMOTE_DIR}/"; fi
|
if [[ -n "${S3_REMOTE_DIR}" ]] && [[ ${S3_REMOTE_DIR} != */ ]]; then S3_REMOTE_DIR="${S3_REMOTE_DIR}/"; fi
|
||||||
@@ -30,6 +31,7 @@ storage_login() {
|
|||||||
echo S3_HOST_BASE=${S3_HOST_BASE} >> .env
|
echo S3_HOST_BASE=${S3_HOST_BASE} >> .env
|
||||||
echo S3_ACCOUNT_ID=${ACCOUNT_ID} >> .env
|
echo S3_ACCOUNT_ID=${ACCOUNT_ID} >> .env
|
||||||
echo S3_APPLICATION_KEY=${APPLICATION_KEY} >> .env
|
echo S3_APPLICATION_KEY=${APPLICATION_KEY} >> .env
|
||||||
|
echo S3_STORAGE_CLASS=${S3_STORAGE_CLASS} >> .env
|
||||||
|
|
||||||
mkdir -p /root/.config/rclone
|
mkdir -p /root/.config/rclone
|
||||||
mo -s=.env -u /usr/local/sbin/storage/s3.template > ${config}
|
mo -s=.env -u /usr/local/sbin/storage/s3.template > ${config}
|
||||||
@@ -44,6 +46,6 @@ storage_upload() {
|
|||||||
[ -z ${S3_CONNECTION} ] && storage_login
|
[ -z ${S3_CONNECTION} ] && storage_login
|
||||||
|
|
||||||
log "Upload \"${ARCHIVE}\" \n\t as \"${S3_ARCHIVE}\" in \"${S3_BUCKET}\""
|
log "Upload \"${ARCHIVE}\" \n\t as \"${S3_ARCHIVE}\" in \"${S3_BUCKET}\""
|
||||||
rclone copy --progress --transfers=5 --update --s3-chunk-size=${CHUNK_SIZE:-100m} ${ARCHIVE} s3:/${S3_BUCKET}/${S3_ARCHIVE}
|
rclone copy --progress --transfers=5 --update --s3-chunk-size=${CHUNK_SIZE:-500m} ${ARCHIVE} s3:/${S3_BUCKET}/${S3_ARCHIVE}
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ access_key_id = {{S3_ACCOUNT_ID}}
|
|||||||
secret_access_key = {{S3_APPLICATION_KEY}}
|
secret_access_key = {{S3_APPLICATION_KEY}}
|
||||||
region = {{S3_REGION}}
|
region = {{S3_REGION}}
|
||||||
endpoint = https://{{S3_HOST_BASE}}
|
endpoint = https://{{S3_HOST_BASE}}
|
||||||
|
storage_class = {{S3_STORAGE_CLASS}}
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
.env
|
|
||||||
.idea/
|
|
||||||
@@ -1,207 +0,0 @@
|
|||||||
Проект содержит скрипты которые обеспечивают сборку контейнера docker и загрузку его в docker registry.
|
|
||||||
|
|
||||||
Состав:
|
|
||||||
* build.sh - скрипт сборки образа
|
|
||||||
* import.sh - скрипт загрузки образа в docker registry
|
|
||||||
* .env - конфигурационный файл для запуска сборки в ручном режиме
|
|
||||||
|
|
||||||
#### Сборка контейнера
|
|
||||||
* Контейнер собирается с использованием Dockerfile либо файла, определяемого переменной `DOCKER_FILE`, из корня проекта. При этом в него передаются параметры:
|
|
||||||
* Контекст сборки может быть определен переменной `DOCKER_BUILD_CONTEXT`, по умолчанию `.`
|
|
||||||
* Для успешной сборки образа, контейнер, в котором происходит сборка (директива `image:` в `.gitlab-ci.yml` файле) должен иметь установленный bash и git.
|
|
||||||
Для этих целей можно использовать образ `docker.ds.mlmsoft.cloud/images/docker`.
|
|
||||||
* Имя базового образа, определяется переменной `DOCKER_BASEIMAGE`
|
|
||||||
(по умолчанию используется `ubuntu:18.04`)
|
|
||||||
* Установка переменной `DOCKER_NO_PULL_BASEIMAGE` в непустое значение позволяет не осуществлять принудительный `docker pull` базового образа
|
|
||||||
* Префикс собираемого локально образа задается переменной `DOCKER_IMAGE_PREFIX`
|
|
||||||
(по умолчанию `mlmsoft`)
|
|
||||||
* Версия базового образа определяется (в порядке приоритета) либо переменной `VERSION`, либо содержимым файла `VERSION` из корня проекта, если файл отсутствует, берется версия `latest`
|
|
||||||
* Maintainer контейнера определяется переменной `DOCKER_MAINTAINER`
|
|
||||||
(по умолчанию указывается email пользователя в gitlab или service@ds.mlmsoft.cloud при локальном запуске, если иное не указано в Dockerfile)
|
|
||||||
* Имя собираемого образа оперделяется переменной `DOCKER_IMAGE_NAME`. По умолчанию используется короткое имя проекта в Gitlab (${CI_PROJECT_PATH#*/})
|
|
||||||
* Тег собираемого образа определяется переменной `DOCKER_IMAGE_TAG`. При отсутствии переменной берется переменная `${VERSION}` и тд
|
|
||||||
* Для передачи произвольных аргументов в Dockerfile можно использовать набор переменных DOCKER_ARG0...DOCKER_ARG9 (соблюдение нумерации не обязательно), в секции `before_script:` .gitlab-ci.yml:
|
|
||||||
|
|
||||||
`export DOCKER_ARG1="VERSION=1.0.0"`
|
|
||||||
|
|
||||||
Переменная VERSION будет доступна в Dockerfile через конструкцию `ARG VERSION`
|
|
||||||
|
|
||||||
Альтернативно можно передевать аргументы в сборку как параметры сборочного скрипта в формате `ARG=value`.
|
|
||||||
|
|
||||||
* Контейнер выкладывается в docker registry `docker.ds.mlmsoft.cloud`, полный путь к контейнеру:
|
|
||||||
|
|
||||||
`docker.ds.mlmsoft.cloud/${CI_PROJECT_NAME}:${VERSION}` если имя образа совпадает с именем проекта, либо
|
|
||||||
`docker.ds.mlmsoft.cloud/${CI_PROJECT_NAME}/${IMAGE_NAME}:${VERSION}` если имя образа отлично от имени проекта
|
|
||||||
|
|
||||||
где:
|
|
||||||
- `${CI_PROJECT_NAME}` полный путь проекта вида `<группа>/имя проекта>` или `<пользователь>/имя проекта>`
|
|
||||||
- `${VERSION}` это версия образа или `latest` в случае ее отсутствия.
|
|
||||||
|
|
||||||
#### Версионность образа
|
|
||||||
Правила формирования версии образа:
|
|
||||||
* Версия образа берется из файла VERSION, который должен располагаться в корне проекта
|
|
||||||
* В случае отсутствия файла, берется версия `:latest`
|
|
||||||
|
|
||||||
Правила определения версии базового образа (DOCKER_BASEIMAGE):
|
|
||||||
* Если в DOCKER_BASEIMAGE есть тег образа, в качестве DOCKER_BASEIMAGE берется значение переменной ${DOCKER_BASEIMAGE} без изменений
|
|
||||||
* Если в DOCKER_BASEIMAGE отсутствует тег образа, то берется ${DOCKER_BASEIMAGE}:${VERSION}
|
|
||||||
|
|
||||||
Правила определения версии итогового образа:
|
|
||||||
* Образ тегируется как ${IMAGE}:${VERSION}
|
|
||||||
* В случае импорта в регистри, образ тегируется как `docker.ds.mlmsoft.cloud/${CI_PROJECT_NAME}:${VERSION}`
|
|
||||||
* В случае, если сборка происходит не из ветки master, образ принудительно тегируется по имени ветки, из которой производится сборка.
|
|
||||||
Если происходит сборка не из ветки master и переменная `DOCKER_IMAGE_TAG` не пустая, то образ тегируется как `$DOCKER_IMAGE_TAG_$BRANCH`.
|
|
||||||
Даннове поведение можно отменить установив переменную `DOCKER_NO_BRANCH_TAG` в непустое значение.
|
|
||||||
|
|
||||||
Дополнительно возможно указать переменную `DOCKER_TAG_AS_LATEST`, которая отвечает за дополнительное тегирование образа тегом `latest` в регистри.
|
|
||||||
|
|
||||||
#### Подключение скриптов к проекту
|
|
||||||
Проект предполагает использование через механизм gitlab submodules или клонирование скриптов при сборке проекта. Примеры файлов и команды находятся в каталоге example/.
|
|
||||||
|
|
||||||
##### Подключение через механизм git submodules
|
|
||||||
Доступно два варианта использования:
|
|
||||||
а) Использование фиксированной версии сборщика
|
|
||||||
б) Использование последней доступной версии
|
|
||||||
|
|
||||||
Для настройки необходимо:
|
|
||||||
1) Однократно выполнить в проекте команду
|
|
||||||
|
|
||||||
`git submodule add -b master ../../infra/ci-build-image.git ci/build-image`
|
|
||||||
|
|
||||||
2) В корне проекта разместить `Dockerfile` вида:
|
|
||||||
```
|
|
||||||
ARG DOCKER_BASEIMAGE
|
|
||||||
FROM ${DOCKER_BASEIMAGE}
|
|
||||||
|
|
||||||
ARG DOCKER_MAINTAINER
|
|
||||||
LABEL maintainer="${DOCKER_MAINTAINER}"
|
|
||||||
|
|
||||||
# Uncomment if you use assets/
|
|
||||||
#COPY assets/ /
|
|
||||||
```
|
|
||||||
3) а) Для использования фиксированной версии в `.gitlab-ci.yml` проекта прописать переменную `GIT_SUBMODULE_STRATEGY=recursive`
|
|
||||||
б) Для использования последней доступной версии в `.gitlab-ci.yml` проекта прописать переменную `GIT_SUBMODULE_STRATEGY=none`
|
|
||||||
|
|
||||||
4) Осуществить вызов сборки в `.gitlab-ci.yml`:
|
|
||||||
а) Вариант фиксированной версии:
|
|
||||||
```
|
|
||||||
image: docker.ds.mlmsoft.cloud/images/docker
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BASEIMAGE: ubuntu:18.04
|
|
||||||
# DOCKER_IMAGE_NAME: ${CI_PROJECT_PATH#*/}
|
|
||||||
# DOCKER_IMAGE_TAG: latest
|
|
||||||
BUILD_SCRIPT: ci/build-image/build.sh
|
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
|
||||||
|
|
||||||
#before_script:
|
|
||||||
# - export DOCKER_ARG0="key=value"
|
|
||||||
# - export DOCKER_ARG1="key=value"
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- chmod +x "${BUILD_SCRIPT}" && "./${BUILD_SCRIPT}"
|
|
||||||
when: manual
|
|
||||||
```
|
|
||||||
|
|
||||||
б) Вариант последней доступной версии:
|
|
||||||
```
|
|
||||||
image: docker.ds.mlmsoft.cloud/images/docker
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BASEIMAGE: ubuntu:18.04
|
|
||||||
# DOCKER_IMAGE_NAME: ${CI_PROJECT_PATH#*/}
|
|
||||||
# DOCKER_IMAGE_TAG: latest
|
|
||||||
BUILD_SCRIPT: ci/build-image/build.sh
|
|
||||||
GIT_SUBMODULE_STRATEGY: none
|
|
||||||
|
|
||||||
#before_script:
|
|
||||||
# - export DOCKER_ARG0="key=value"
|
|
||||||
# - export DOCKER_ARG1="key=value"
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- git submodule sync
|
|
||||||
- git submodule update --init --remote --force
|
|
||||||
- chmod +x "${BUILD_SCRIPT}" && "./${BUILD_SCRIPT}"
|
|
||||||
when: manual
|
|
||||||
```
|
|
||||||
|
|
||||||
5) Обновление submodule осуществляется командой:
|
|
||||||
|
|
||||||
`git submodule sync && git submodule update --init --remote`
|
|
||||||
|
|
||||||
##### Клонирование скриптов при сборке проекта
|
|
||||||
|
|
||||||
1) В корне проекта разместить `Dockerfile` вида:
|
|
||||||
```
|
|
||||||
ARG DOCKER_BASEIMAGE
|
|
||||||
FROM ${DOCKER_BASEIMAGE}
|
|
||||||
|
|
||||||
ARG DOCKER_MAINTAINER
|
|
||||||
LABEL maintainer="${DOCKER_MAINTAINER}"
|
|
||||||
|
|
||||||
# Uncomment if you use assets/
|
|
||||||
#COPY assets/ /
|
|
||||||
```
|
|
||||||
|
|
||||||
2) Осуществить вызов сборки в `.gitlab-ci.yml`:
|
|
||||||
```
|
|
||||||
image: docker.ds.mlmsoft.cloud/images/docker
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BASEIMAGE: ubuntu:18.04
|
|
||||||
# DOCKER_IMAGE_NAME: ${CI_PROJECT_PATH#*/}
|
|
||||||
# DOCKER_IMAGE_TAG: latest
|
|
||||||
BUILD_SCRIPT: ci/build-image/build.sh
|
|
||||||
|
|
||||||
#before_script:
|
|
||||||
# - export DOCKER_ARG0="key=value"
|
|
||||||
# - export DOCKER_ARG1="key=value"
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ds.mlmsoft.cloud/infra/ci-build-image.git ${BUILD_SCRIPT%/*}
|
|
||||||
- chmod +x "${BUILD_SCRIPT}" && "./${BUILD_SCRIPT}"
|
|
||||||
when: manual
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### Ручной запуск
|
|
||||||
Возможен запуск сборки на локальной машине и выкладывание его в docker registry без внесения изменений в проект. Для этого рядом со сборочными скриптами в `/ci/build-images` должен находиться конфиг с именем `.env` (пример конфига см. в файле `sample.env`):
|
|
||||||
```
|
|
||||||
# Your project target image name and tag
|
|
||||||
DOCKER_IMAGE_NAME=image
|
|
||||||
DOCKER_IMAGE_TAG=latest
|
|
||||||
|
|
||||||
# Base image name and tag
|
|
||||||
DOCKER_BASEIMAGE=ubuntu:18.04
|
|
||||||
|
|
||||||
# Docker build context (leave it as is if not know that it is)
|
|
||||||
DOCKER_BUILD_CONTEXT=.
|
|
||||||
DOCKER_PROJECT=external/project
|
|
||||||
CI_COMMIT_REF_SLUG=master
|
|
||||||
|
|
||||||
# Registry credentials (need only if docker registry upload required)
|
|
||||||
REGISTRY_USER=%YOUR_GITLAB_USERNAME%
|
|
||||||
REGISTRY_PASSWORD=%YOUR_GITLAB_PASSWORD%
|
|
||||||
REGISTRY_URL=docker.ds.mlmsoft.cloud
|
|
||||||
```
|
|
||||||
|
|
||||||
Запуск сборки из каталога проекта: `./ci/build-image/build.sh`
|
|
||||||
|
|
||||||
При ручном запуске автоматическая загрузка в docker registry не происходит, необходимо использовать скрипт `import.sh`:
|
|
||||||
|
|
||||||
`DOCKER_IMAGE=image ./import.sh`
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
image: docker.ds.mlmsoft.cloud/images/docker
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BASEIMAGE: ubuntu:18.04
|
|
||||||
# DOCKER_IMAGE_NAME: ${CI_PROJECT_PATH#*/}
|
|
||||||
# DOCKER_IMAGE_TAG: latest
|
|
||||||
BUILD_SCRIPT: ci/build-image/build.sh
|
|
||||||
# GIT_SUBMODULE_STRATEGY: recursive
|
|
||||||
GIT_SUBMODULE_STRATEGY: none
|
|
||||||
|
|
||||||
#before_script:
|
|
||||||
# - export DOCKER_ARG0="key=value"
|
|
||||||
# - export DOCKER_ARG1="key=value"
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- git submodule sync
|
|
||||||
- git submodule update --init --remote --force
|
|
||||||
- chmod +x "${BUILD_SCRIPT}" && "./${BUILD_SCRIPT}"
|
|
||||||
when: manual
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
image: docker.ds.mlmsoft.cloud/images/docker
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BASEIMAGE: ubuntu:18.04
|
|
||||||
# DOCKER_IMAGE_NAME: ${CI_PROJECT_PATH#*/}
|
|
||||||
# DOCKER_IMAGE_TAG: latest
|
|
||||||
BUILD_SCRIPT: ci/build-image/build.sh
|
|
||||||
|
|
||||||
#before_script:
|
|
||||||
# - export DOCKER_ARG0="key=value"
|
|
||||||
# - export DOCKER_ARG1="key=value"
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
build:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ds.mlmsoft.cloud/infra/ci-build-image.git ${BUILD_SCRIPT%/*}
|
|
||||||
- chmod +x "${BUILD_SCRIPT}" && "./${BUILD_SCRIPT}"
|
|
||||||
when: manual
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
ARG DOCKER_BASEIMAGE
|
|
||||||
FROM ${DOCKER_BASEIMAGE}
|
|
||||||
|
|
||||||
ARG DOCKER_MAINTAINER
|
|
||||||
LABEL maintainer="${DOCKER_MAINTAINER}"
|
|
||||||
|
|
||||||
# Uncomment if you use assets/
|
|
||||||
#COPY assets/ /
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
image = image_name
|
|
||||||
|
|
||||||
all: build
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@docker images -f "dangling=true" -q | docker ps -a -f "ancestor={}" -q | xargs --no-run-if-empty docker rm
|
|
||||||
@docker images -f "dangling=true" -q | xargs --no-run-if-empty docker rmi -f
|
|
||||||
|
|
||||||
@docker ps --filter "ancestor=${image}" --format {{.ID}} | xargs --no-run-if-empty docker stop || true
|
|
||||||
@docker ps -a --filter "ancestor=${image}" --format {{.ID}} | xargs --no-run-if-empty docker rm || true
|
|
||||||
@docker images --filter "reference=${image}" --format {{.ID}} | xargs --no-run-if-empty docker rmi || true
|
|
||||||
|
|
||||||
build:
|
|
||||||
@docker build --tag=${image} --no-cache .
|
|
||||||
|
|
||||||
release: build
|
|
||||||
@docker build --tag=${image}:$(shell cat VERSION) .
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1.0.0
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
git submodule add -b master ../../infra/ci-build-image.git ci/build-image
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Your project target image name and tag
|
|
||||||
DOCKER_IMAGE_NAME=image
|
|
||||||
DOCKER_IMAGE_TAG=latest
|
|
||||||
|
|
||||||
# Base image name and tag
|
|
||||||
DOCKER_BASEIMAGE=ubuntu:18.04
|
|
||||||
|
|
||||||
# Docker build context (leave it as is if not know that it is)
|
|
||||||
DOCKER_BUILD_CONTEXT=.
|
|
||||||
DOCKER_PROJECT=external/project
|
|
||||||
CI_COMMIT_REF_SLUG=master
|
|
||||||
|
|
||||||
# Registry credentials (need only if docker registry upload required)
|
|
||||||
REGISTRY_USER=%YOUR_GITLAB_USERNAME%
|
|
||||||
REGISTRY_PASSWORD=%YOUR_GITLAB_PASSWORD%
|
|
||||||
REGISTRY_URL=docker.ds.mlmsoft.cloud
|
|
||||||
Reference in New Issue
Block a user