diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 08276c7f403c9d08a5ae40876d6089889f974ff3..3ee6cc0b70ca70361a074546638d1201ba213717 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,8 +3,8 @@ image: docker:24 build: - except: - - main + rules: + - if: '$CI_COMMIT_REF_SLUG =~ /^base-/i' stage: build needs: [] before_script: diff --git a/docker-compose-for-prod/.auth b/docker-compose-for-prod/.auth new file mode 100644 index 0000000000000000000000000000000000000000..bcd69386037a476419c2663db13f4543483cb8d0 --- /dev/null +++ b/docker-compose-for-prod/.auth @@ -0,0 +1,2 @@ +DEPLOY_USER=my-user +DEPLOY_TOKEN=not-secured-password \ No newline at end of file diff --git a/docker-compose-for-prod/.env b/docker-compose-for-prod/.env new file mode 100644 index 0000000000000000000000000000000000000000..17f4ba9fc36726527b9f4d0a640bb5cc3dc3a88f --- /dev/null +++ b/docker-compose-for-prod/.env @@ -0,0 +1,4 @@ +CI_PROJECT_NAMESPACE=ada-team +CI_PROJECT_NAME=my-project +CI_REGISTRY=registry-gitlab.pasteur.fr +PROD_BRANCH=main diff --git a/docker-compose-for-prod/.example.env b/docker-compose-for-prod/.example.env new file mode 100644 index 0000000000000000000000000000000000000000..f81812ae8b100b24db3ac3e6d62621fdbf1c3626 --- /dev/null +++ b/docker-compose-for-prod/.example.env @@ -0,0 +1,4 @@ +CI_PROJECT_NAMESPACE=hub +CI_PROJECT_NAME=shiny-k8s-example +CI_REGISTRY=registry-gitlab.pasteur.fr +PROD_BRANCH=base-python diff --git a/docker-compose-for-prod/README.md b/docker-compose-for-prod/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d1fa2103b47f717bc45d2c2bb68ecf57e19a8bb2 --- /dev/null +++ b/docker-compose-for-prod/README.md @@ -0,0 +1,43 @@ +# Running in production with docker compose + +Documentation can be found at https://hub.pages.pasteur.fr/shiny-k8s/user_guide/run_with_compose.html + +## Configure your .env + +In the `.env` file we provide example to run the compose : + +Given a project hosted at # If your project is hosted at https://gitlab.pasteur.fr/ada-team/my-project/ +where the production branch is named `main`, the file is: +```ini +CI_PROJECT_NAMESPACE=ada-team +CI_PROJECT_NAME=my-project +CI_REGISTRY=registry-gitlab.pasteur.fr +PROD_BRANCH=main +``` + +## Run it +```sh +docker compose up -d +``` + +## Run the example +```sh +docker compose --env-file .example.env up +``` + +## With private registry + +You have to auth before starting the compose. Given a .auth file containing : +```ini +DEPLOY_USER=my-user +DEPLOY_TOKEN=not-secured-password +``` +You should then do: +```sh +source .auth +source .env +echo $DEPLOY_TOKEN | docker login --username $DEPLOY_USER $CI_REGISTRY --password-stdin +docker compose up -d +``` + +more info can be found at https://docs.docker.com/reference/cli/docker/login/#password-stdin \ No newline at end of file diff --git a/docker-compose-for-prod/data/.gitkeep b/docker-compose-for-prod/data/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docker-compose-for-prod/docker-compose.yaml b/docker-compose-for-prod/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d98139f4f4595ed6d70f50dfa08d2fece5fdcf0e --- /dev/null +++ b/docker-compose-for-prod/docker-compose.yaml @@ -0,0 +1,11 @@ +services: + shiny-server: + image: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/${PROD_BRANCH}:latest + pull_policy: always + user: 'shiny:shiny' + volumes: + - ./logs:/var/log/shiny-server + - ./persistent:/srv/shiny-server/www/persistent + - ./data:/srv/shiny-server/data:ro + ports: + - '3838:3838' \ No newline at end of file diff --git a/docker-compose-for-prod/logs/.gitkeep b/docker-compose-for-prod/logs/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docker-compose-for-prod/persistent/.gitkeep b/docker-compose-for-prod/persistent/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391