Merge branch 'docker-build-process' into 'dev'
Docker build process See merge request Shinobi-Systems/Shinobi!486node-20
commit
97a9cd483a
241
.gitlab-ci.yml
241
.gitlab-ci.yml
|
@ -1,37 +1,26 @@
|
||||||
# This file is a template, and might need editing before it works on your project.
|
|
||||||
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
|
||||||
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
|
||||||
# This specific template is located at:
|
|
||||||
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml
|
|
||||||
|
|
||||||
# Build a Docker image with CI/CD and push to the GitLab registry.
|
|
||||||
# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
|
|
||||||
#
|
|
||||||
# This template uses one generic job with conditional builds
|
|
||||||
# for the default branch and all other (MR) branches.
|
|
||||||
|
|
||||||
docker-latest-build:
|
docker-latest-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "false"
|
||||||
|
BASE_IMAGE: "node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=""
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" .
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
|
@ -40,27 +29,28 @@ docker-latest-build:
|
||||||
- Dockerfile
|
- Dockerfile
|
||||||
|
|
||||||
docker-latest-no-db-build:
|
docker-latest-no-db-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "true"
|
||||||
|
BASE_IMAGE: "node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":no-db"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest-no-db'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":no-db-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull --build-arg VAR_EXCLUDE_DB=true -t "$CI_REGISTRY_IMAGE${tag}" .
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
|
@ -69,176 +59,181 @@ docker-latest-no-db-build:
|
||||||
- Dockerfile
|
- Dockerfile
|
||||||
|
|
||||||
docker-arm32v7-build:
|
docker-arm32v7-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "false"
|
||||||
|
BASE_IMAGE: "arm32v7/node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":arm32v7"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'arm32v7'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":arm32v7-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.arm32v7
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.arm32v7
|
- Dockerfile
|
||||||
|
|
||||||
docker-arm32v7-no-db-build:
|
docker-arm32v7-no-db-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "true"
|
||||||
|
BASE_IMAGE: "arm32v7/node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":arm32v7-no-db"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'arm32v7-no-db'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":arm32v7-no-db-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull --build-arg VAR_EXCLUDE_DB=true -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.arm32v7
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.arm32v7
|
- Dockerfile
|
||||||
|
|
||||||
docker-arm64v8-build:
|
docker-arm64v8-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "false"
|
||||||
|
BASE_IMAGE: "arm64v8/node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":arm64v8"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'arm64v8'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":arm64v8-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.arm64v8
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.arm64v8
|
- Dockerfile
|
||||||
|
|
||||||
docker-arm64v8-no-db-build:
|
docker-arm64v8-no-db-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "true"
|
||||||
|
BASE_IMAGE: "arm64v8/node:18-bullseye-slim"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":arm64v8-no-db"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'arm64v8-no-db'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":arm64v8-no-db-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull --build-arg VAR_EXCLUDE_DB=true -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.arm64v8
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.arm64v8
|
- Dockerfile
|
||||||
|
|
||||||
|
|
||||||
docker-nvidia-build:
|
docker-nvidia-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "false"
|
||||||
|
BASE_IMAGE: "nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu22.04"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":nvidia"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'nvidia'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":nvidia-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.nvidia
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.nvidia
|
- Dockerfile
|
||||||
|
|
||||||
docker-nvidia-no-db-build:
|
docker-nvidia-no-db-build:
|
||||||
# Use the official docker image.
|
|
||||||
image: docker:latest
|
image: docker:latest
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
EXCLUDE_DB: "true"
|
||||||
|
BASE_IMAGE: "nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu22.04"
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
# Default branch leaves tag empty (= latest tag)
|
|
||||||
# All other branches are tagged with the escaped branch name (commit ref slug)
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
|
BRANCH_PREFIX="$(if [ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH ]; then echo ${CI_COMMIT_REF_SLUG} ; else echo 'latest'; fi)"
|
||||||
tag=":nvidia-no-db"
|
NO_DB_SUFIX="$(${EXCLUDE_DB} && echo '-no-db' || echo '')"
|
||||||
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'nvidia-no-db'"
|
BASE_IMAGE_ARCH="$(echo ${BASE_IMAGE} | cut -d'/' -f1)"
|
||||||
else
|
BASE_IMAGE_TYPE="$(echo ${BASE_IMAGE} | cut -d'/' -f2)"
|
||||||
tag=":nvidia-no-db-$CI_COMMIT_REF_SLUG"
|
ARCH_TYPE="$(if [ $BASE_IMAGE_ARCH != $BASE_IMAGE_TYPE ]; then echo '-'${BASE_IMAGE_ARCH}; else echo ''; fi )"
|
||||||
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
|
|
||||||
fi
|
export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${ARCH_TYPE}${NO_DB_SUFIX}"
|
||||||
- docker build --pull --build-arg VAR_EXCLUDE_DB=true -t "$CI_REGISTRY_IMAGE${tag}" . -f Dockerfile.nvidia
|
echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ;
|
||||||
- docker push "$CI_REGISTRY_IMAGE${tag}"
|
|
||||||
# Run this job in a branch where a Dockerfile exists
|
- docker build --pull --build-arg EXCLUDE_DB="${EXCLUDE_DB}" --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}" . -f "Dockerfile"
|
||||||
|
- docker push "${IMAGE_NAME}"
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev"
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists:
|
||||||
- Dockerfile.nvidia
|
- Dockerfile
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
mkdir -p /etc/apt/keyrings
|
|
||||||
|
|
||||||
apt update -y --fix-missing
|
|
||||||
apt upgrade -y
|
|
||||||
apt update -y --fix-missing
|
|
||||||
|
|
||||||
apt install -y \
|
|
||||||
wget \
|
|
||||||
curl \
|
|
||||||
net-tools \
|
|
||||||
software-properties-common \
|
|
||||||
libfreetype6-dev \
|
|
||||||
libgnutls28-dev \
|
|
||||||
libmp3lame-dev \
|
|
||||||
libass-dev \
|
|
||||||
libogg-dev \
|
|
||||||
libtheora-dev \
|
|
||||||
libvorbis-dev \
|
|
||||||
libvpx-dev \
|
|
||||||
libwebp-dev \
|
|
||||||
libssh2-1-dev \
|
|
||||||
libopus-dev \
|
|
||||||
librtmp-dev \
|
|
||||||
libx264-dev \
|
|
||||||
libx265-dev \
|
|
||||||
yasm \
|
|
||||||
build-essential \
|
|
||||||
bzip2 \
|
|
||||||
coreutils \
|
|
||||||
procps \
|
|
||||||
gnutls-bin \
|
|
||||||
nasm \
|
|
||||||
tar \
|
|
||||||
x264 \
|
|
||||||
ffmpeg \
|
|
||||||
git \
|
|
||||||
make \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
pkg-config \
|
|
||||||
python3 \
|
|
||||||
tar \
|
|
||||||
sudo \
|
|
||||||
xz-utils \
|
|
||||||
ca-certificates \
|
|
||||||
gnupg
|
|
||||||
|
|
||||||
if [ "$INSTALL_NODE" = "true" ] ; then set -ex; \
|
|
||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg ; \
|
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list ; \
|
|
||||||
apt update -y --fix-missing ; \
|
|
||||||
apt upgrade -y ; \
|
|
||||||
apt install nodejs -y ; fi
|
|
||||||
|
|
||||||
node -v
|
|
||||||
npm -v
|
|
||||||
|
|
||||||
npm i npm@latest pm2 pg -g --save
|
|
||||||
npm install --unsafe-perm
|
|
||||||
|
|
||||||
chmod 777 /home/Shinobi
|
|
||||||
chmod -R 777 /home/Shinobi/plugins
|
|
||||||
chmod -f +x /home/Shinobi/Docker/init.sh
|
|
||||||
|
|
||||||
sed -i -e 's/\r//g' /home/Shinobi/Docker/init.sh
|
|
||||||
|
|
||||||
ffmpeg -version
|
|
||||||
|
|
||||||
# Install MariaDB server... the debian way
|
|
||||||
if [ "$DB_DISABLE_INCLUDED" = "false" ] ; then set -ex; \
|
|
||||||
{ \
|
|
||||||
echo "mariadb-server" mysql-server/root_password password '${DB_ROOT_PASSWORD}'; \
|
|
||||||
echo "mariadb-server" mysql-server/root_password_again password '${DB_ROOT_PASSWORD}'; \
|
|
||||||
} | debconf-set-selections; \
|
|
||||||
mkdir -p /var/lib/mysql; \
|
|
||||||
apt-get update; \
|
|
||||||
apt-get install -y \
|
|
||||||
"mariadb-server" \
|
|
||||||
socat \
|
|
||||||
; \
|
|
||||||
find /etc/mysql/ -name '*.cnf' -print0 \
|
|
||||||
| xargs -0 grep -lZE '^(bind-address|log)' \
|
|
||||||
| xargs -rt -0 sed -Ei 's/^(bind-address|log)/#&/'; \
|
|
||||||
sed -ie "s/^bind-address\s*=\s*127\.0\.0\.1$/#bind-address = 0.0.0.0/" /etc/mysql/my.cnf; fi
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libgnutls28-dev \
|
||||||
|
libmp3lame-dev \
|
||||||
|
libass-dev \
|
||||||
|
libogg-dev \
|
||||||
|
libtheora-dev \
|
||||||
|
libvorbis-dev \
|
||||||
|
libvpx-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libssh2-1-dev \
|
||||||
|
libopus-dev \
|
||||||
|
librtmp-dev \
|
||||||
|
libx264-dev \
|
||||||
|
libx265-dev \
|
||||||
|
x264 \
|
||||||
|
ffmpeg
|
||||||
|
|
||||||
|
ffmpeg -version
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh
|
||||||
|
$EXCLUDE_DB > /dev/null
|
||||||
|
|
||||||
|
if [ "$?" -ne 0 ] ; then
|
||||||
|
echo "Installing MariaDB"
|
||||||
|
set -ex
|
||||||
|
{ \
|
||||||
|
echo "mariadb-server" mysql-server/root_password password '${DB_ROOT_PASSWORD}'; \
|
||||||
|
echo "mariadb-server" mysql-server/root_password_again password '${DB_ROOT_PASSWORD}'; \
|
||||||
|
} | debconf-set-selections
|
||||||
|
|
||||||
|
mkdir -p /var/lib/mysql
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
apt-get install -y mariadb-server socat
|
||||||
|
|
||||||
|
find /etc/mysql/ -name '*.cnf' -print0 | xargs -0 grep -lZE '^(bind-address|log)' | xargs -rt -0 sed -Ei 's/^(bind-address|log)/#&/'
|
||||||
|
sed -ie "s/^bind-address\s*=\s*127\.0\.0\.1$/#bind-address = 0.0.0.0/" /etc/mysql/my.cnf
|
||||||
|
fi
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/sh
|
||||||
|
which node > /dev/null
|
||||||
|
|
||||||
|
if [ "$?" -ne 0 ] ; then
|
||||||
|
echo "Installing NodeJS 18"
|
||||||
|
mkdir -p /etc/apt/keyrings
|
||||||
|
apt-get install -y ca-certificates gnupg
|
||||||
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
|
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
|
||||||
|
|
||||||
|
apt-get update -y --fix-missing
|
||||||
|
apt-get upgrade -y
|
||||||
|
apt-get install nodejs -y
|
||||||
|
fi
|
||||||
|
|
||||||
|
node -v
|
||||||
|
npm -v
|
||||||
|
|
||||||
|
npm i npm@latest pm2 pg -g --save
|
||||||
|
npm install --unsafe-perm
|
49
Dockerfile
49
Dockerfile
|
@ -1,7 +1,8 @@
|
||||||
FROM node:18-bullseye-slim
|
ARG BASE_IMAGE=node:18-bullseye-slim
|
||||||
|
FROM ${BASE_IMAGE}
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive \
|
ARG DEBIAN_FRONTEND=noninteractive \
|
||||||
VAR_EXCLUDE_DB=false
|
EXCLUDE_DB=false
|
||||||
|
|
||||||
ENV DB_USER=majesticflame \
|
ENV DB_USER=majesticflame \
|
||||||
DB_PASSWORD='' \
|
DB_PASSWORD='' \
|
||||||
|
@ -18,12 +19,50 @@ ENV DB_USER=majesticflame \
|
||||||
SSL_ORGANIZATION='Shinobi Systems' \
|
SSL_ORGANIZATION='Shinobi Systems' \
|
||||||
SSL_ORGANIZATION_UNIT='IT Department' \
|
SSL_ORGANIZATION_UNIT='IT Department' \
|
||||||
SSL_COMMON_NAME='nvr.ninja' \
|
SSL_COMMON_NAME='nvr.ninja' \
|
||||||
DB_DISABLE_INCLUDED=$VAR_EXCLUDE_DB
|
DB_DISABLE_INCLUDED=$EXCLUDE_DB
|
||||||
|
|
||||||
WORKDIR /home/Shinobi
|
WORKDIR /home/Shinobi
|
||||||
COPY . ./
|
COPY . ./
|
||||||
|
|
||||||
RUN sh /home/Shinobi/Docker/install_dependencies.sh
|
RUN apt-get update -y
|
||||||
|
RUN apt-get upgrade -y
|
||||||
|
|
||||||
|
RUN apt-get install -y \
|
||||||
|
wget \
|
||||||
|
curl \
|
||||||
|
net-tools \
|
||||||
|
software-properties-common \
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
python3 \
|
||||||
|
sudo \
|
||||||
|
pkg-config \
|
||||||
|
apt-utils \
|
||||||
|
yasm \
|
||||||
|
bzip2 \
|
||||||
|
coreutils \
|
||||||
|
procps \
|
||||||
|
gnutls-bin \
|
||||||
|
nasm \
|
||||||
|
tar \
|
||||||
|
make \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
tar \
|
||||||
|
xz-utils
|
||||||
|
|
||||||
|
RUN sh /home/Shinobi/Docker/install_ffmpeg.sh
|
||||||
|
RUN sh /home/Shinobi/Docker/install_mariadb.sh
|
||||||
|
RUN sh /home/Shinobi/Docker/install_nodejs.sh
|
||||||
|
|
||||||
|
RUN chmod 777 /home/Shinobi
|
||||||
|
RUN chmod -R 777 /home/Shinobi/plugins
|
||||||
|
RUN chmod -f +x /home/Shinobi/Docker/init.sh
|
||||||
|
|
||||||
|
RUN sed -i -e 's/\r//g' /home/Shinobi/Docker/init.sh
|
||||||
|
|
||||||
|
RUN apt-get update -y --fix-missing
|
||||||
|
RUN apt-get upgrade -y
|
||||||
|
|
||||||
VOLUME ["/home/Shinobi/videos"]
|
VOLUME ["/home/Shinobi/videos"]
|
||||||
VOLUME ["/home/Shinobi/libs/customAutoLoad"]
|
VOLUME ["/home/Shinobi/libs/customAutoLoad"]
|
||||||
|
@ -31,6 +70,6 @@ VOLUME ["/config"]
|
||||||
|
|
||||||
EXPOSE 8080 443 21 25
|
EXPOSE 8080 443 21 25
|
||||||
|
|
||||||
ENTRYPOINT ["sh", "/home/Shinobi/Docker/init.sh"]
|
ENTRYPOINT ["/home/Shinobi/Docker/init.sh"]
|
||||||
|
|
||||||
CMD [ "pm2-docker", "/home/Shinobi/Docker/pm2.yml" ]
|
CMD [ "pm2-docker", "/home/Shinobi/Docker/pm2.yml" ]
|
|
@ -1,36 +0,0 @@
|
||||||
FROM arm32v7/node:18-bullseye-slim
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive \
|
|
||||||
VAR_EXCLUDE_DB=false
|
|
||||||
|
|
||||||
ENV DB_USER=majesticflame \
|
|
||||||
DB_PASSWORD='' \
|
|
||||||
DB_HOST='localhost' \
|
|
||||||
DB_DATABASE=ccio \
|
|
||||||
DB_PORT=3306 \
|
|
||||||
DB_TYPE='mysql' \
|
|
||||||
SUBSCRIPTION_ID=sub_XXXXXXXXXXXX \
|
|
||||||
PLUGIN_KEYS='{}' \
|
|
||||||
SSL_ENABLED='false' \
|
|
||||||
SSL_COUNTRY='CA' \
|
|
||||||
SSL_STATE='BC' \
|
|
||||||
SSL_LOCATION='Vancouver' \
|
|
||||||
SSL_ORGANIZATION='Shinobi Systems' \
|
|
||||||
SSL_ORGANIZATION_UNIT='IT Department' \
|
|
||||||
SSL_COMMON_NAME='nvr.ninja' \
|
|
||||||
DB_DISABLE_INCLUDED=$VAR_EXCLUDE_DB
|
|
||||||
|
|
||||||
WORKDIR /home/Shinobi
|
|
||||||
COPY . ./
|
|
||||||
|
|
||||||
RUN sh /home/Shinobi/Docker/install_dependencies.sh
|
|
||||||
|
|
||||||
VOLUME ["/home/Shinobi/videos"]
|
|
||||||
VOLUME ["/home/Shinobi/libs/customAutoLoad"]
|
|
||||||
VOLUME ["/config"]
|
|
||||||
|
|
||||||
EXPOSE 8080 443 21 25
|
|
||||||
|
|
||||||
ENTRYPOINT ["/home/Shinobi/Docker/init.sh"]
|
|
||||||
|
|
||||||
CMD [ "pm2-docker", "/home/Shinobi/Docker/pm2.yml" ]
|
|
|
@ -1,36 +0,0 @@
|
||||||
FROM arm64v8/node:18-bullseye-slim
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive \
|
|
||||||
VAR_EXCLUDE_DB=false
|
|
||||||
|
|
||||||
ENV DB_USER=majesticflame \
|
|
||||||
DB_PASSWORD='' \
|
|
||||||
DB_HOST='localhost' \
|
|
||||||
DB_DATABASE=ccio \
|
|
||||||
DB_PORT=3306 \
|
|
||||||
DB_TYPE='mysql' \
|
|
||||||
SUBSCRIPTION_ID=sub_XXXXXXXXXXXX \
|
|
||||||
PLUGIN_KEYS='{}' \
|
|
||||||
SSL_ENABLED='false' \
|
|
||||||
SSL_COUNTRY='CA' \
|
|
||||||
SSL_STATE='BC' \
|
|
||||||
SSL_LOCATION='Vancouver' \
|
|
||||||
SSL_ORGANIZATION='Shinobi Systems' \
|
|
||||||
SSL_ORGANIZATION_UNIT='IT Department' \
|
|
||||||
SSL_COMMON_NAME='nvr.ninja' \
|
|
||||||
DB_DISABLE_INCLUDED=$VAR_EXCLUDE_DB
|
|
||||||
|
|
||||||
WORKDIR /home/Shinobi
|
|
||||||
COPY . ./
|
|
||||||
|
|
||||||
RUN sh /home/Shinobi/Docker/install_dependencies.sh
|
|
||||||
|
|
||||||
VOLUME ["/home/Shinobi/videos"]
|
|
||||||
VOLUME ["/home/Shinobi/libs/customAutoLoad"]
|
|
||||||
VOLUME ["/config"]
|
|
||||||
|
|
||||||
EXPOSE 8080 443 21 25
|
|
||||||
|
|
||||||
ENTRYPOINT ["/home/Shinobi/Docker/init.sh"]
|
|
||||||
|
|
||||||
CMD [ "pm2-docker", "/home/Shinobi/Docker/pm2.yml" ]
|
|
|
@ -1,39 +0,0 @@
|
||||||
FROM nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu22.04
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive \
|
|
||||||
VAR_EXCLUDE_DB=false \
|
|
||||||
VAR_INSTALL_NODE=true
|
|
||||||
|
|
||||||
ENV DB_USER=majesticflame \
|
|
||||||
DB_PASSWORD='' \
|
|
||||||
DB_HOST='localhost' \
|
|
||||||
DB_DATABASE=ccio \
|
|
||||||
DB_PORT=3306 \
|
|
||||||
DB_TYPE='mysql' \
|
|
||||||
SUBSCRIPTION_ID=sub_XXXXXXXXXXXX \
|
|
||||||
PLUGIN_KEYS='{}' \
|
|
||||||
SSL_ENABLED='false' \
|
|
||||||
SSL_COUNTRY='CA' \
|
|
||||||
SSL_STATE='BC' \
|
|
||||||
SSL_LOCATION='Vancouver' \
|
|
||||||
SSL_ORGANIZATION='Shinobi Systems' \
|
|
||||||
SSL_ORGANIZATION_UNIT='IT Department' \
|
|
||||||
SSL_COMMON_NAME='nvr.ninja' \
|
|
||||||
DB_DISABLE_INCLUDED=$VAR_EXCLUDE_DB \
|
|
||||||
NODE_MAJOR=18 \
|
|
||||||
INSTALL_NODE=$VAR_INSTALL_NODE
|
|
||||||
|
|
||||||
WORKDIR /home/Shinobi
|
|
||||||
COPY . ./
|
|
||||||
|
|
||||||
RUN sh /home/Shinobi/Docker/install_dependencies.sh
|
|
||||||
|
|
||||||
VOLUME ["/home/Shinobi/videos"]
|
|
||||||
VOLUME ["/home/Shinobi/libs/customAutoLoad"]
|
|
||||||
VOLUME ["/config"]
|
|
||||||
|
|
||||||
EXPOSE 8080 443 21 25
|
|
||||||
|
|
||||||
ENTRYPOINT ["sh", "/home/Shinobi/Docker/init.sh"]
|
|
||||||
|
|
||||||
CMD [ "pm2-docker", "/home/Shinobi/Docker/pm2.yml" ]
|
|
Loading…
Reference in New Issue