Loading .gitlab-ci.yml +105 −17 Original line number Diff line number Diff line Loading @@ -11,33 +11,121 @@ include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment-custom-image.yml' stages: - build - license-list - pre-package - package - test-package - post-package - deploy variables: PROJECT_PARENT_NAME: socket .docker-build: variables: DBLD_PARENT_IMAGE_NAME: ${REDMIC_SERVER_IMAGE_NAME} DBLD_PARENT_IMAGE_TAG: ${REDMIC_SERVER_IMAGE_TAG} .maven-build: variables: POSTGRES_IMAGE_TAG: 10.13-alpine POSTGRES_DB: redmic POSTGRES_USER: postgres POSTGRES_PASSWORD: password OAUTH_IMAGE_NAME: registry.gitlab.com/redmic-project/server/oauth/master OAUTH_IMAGE_TAG: latest OAUTH_CLIENT_ID: oauth_id OAUTH_CLIENT_SECRET: oauth_secret DIND_IMAGE_NAME: docker DIND_IMAGE_TAG: dind DOCKER_HOST: tcp://docker:2375 OAUTH_SERVER: http://docker:8081 SPRING_DATASOURCE_URL: jdbc:postgresql://docker:5432/redmic?stringtype=unspecified GITLAB_REGISTRY_HOST: registry.gitlab.com CI_DEPLOY_USER: ci_deploy_user CI_DEPLOY_PASSWORD: ci_deploy_password LOGGING_LEVEL_ROOT: error LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: error DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: socket services: - ${DIND_IMAGE_NAME}:${DIND_IMAGE_TAG} before_script: - > mkdir -p sql; chmod -R 755 sql; docker network create test - > docker run -d --rm --name postgres \ -p 5432:5432 \ --network test \ --network-alias db \ -e POSTGRES_DB \ -e POSTGRES_USER \ -e POSTGRES_PASSWORD \ -v $(pwd)/sql:/sql \ postgres:${POSTGRES_IMAGE_TAG} - > curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_DATA_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_DATA_TEST_SNIPPET_ID}/raw" - > RETRIES=10; until docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c 'select 1' > /dev/null 2>&1 || [ $RETRIES -eq 0 ]; do RETRIES=$((RETRIES-=1)); echo "Waiting for postgres server, ${RETRIES} remaining attempts..."; sleep 1; done; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c "ALTER ROLE ${USER_SPRING_DATASOURCE_USERNAME} WITH PASSWORD '${USER_SPRING_DATASOURCE_PASSWORD}'"; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_data_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_data_test.sql - > docker run -d --rm --name oauth \ -p 8081:8081 \ --network test \ -e SPRING_PROFILES_ACTIVE=dev \ -e SPRING_DATASOURCE_USERNAME=${USER_SPRING_DATASOURCE_USERNAME} \ -e SPRING_DATASOURCE_PASSWORD=${USER_SPRING_DATASOURCE_PASSWORD} \ ${OAUTH_IMAGE_NAME}:${OAUTH_IMAGE_TAG} after_script: - rm -rf .m2/repository/es - docker stop oauth postgres .deploy: script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID} OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} variables: STACK: ${PROJECT_PARENT_NAME} environment: url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} .deploy-development: variables: SPRING_PROFILES_ACTIVE: pre .deploy-production: variables: SPRING_PROFILES_ACTIVE: prod Dockerfile +8 −2 Original line number Diff line number Diff line ARG PARENT_IMAGE_NAME ARG PARENT_IMAGE_TAG ARG PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server ARG PARENT_IMAGE_TAG=latest FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /dist/*.jar ./ ARG MICROSERVICE_NAME=socket ENV MICROSERVICE_NAME=${MICROSERVICE_NAME} ARG MICROSERVICE_PORT=8089 ENV MICROSERVICE_PORT=${MICROSERVICE_PORT} EXPOSE ${MICROSERVICE_PORT} deploy/.env +3 −0 Original line number Diff line number Diff line PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG=latest MICROSERVICE_NAME=socket MICROSERVICE_PORT=8089 deploy/docker-compose.dev.yml +2 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,5 @@ version: '3.5' services: socket: ports: - target: ${MICROSERVICE_PORT} published: ${MICROSERVICE_PORT} mode: host environment: SPRING_PROFILES_ACTIVE: pre deploy/docker-compose.prod.yml +2 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,5 @@ version: '3.5' services: socket: deploy: placement: constraints: - node.role == worker environment: SPRING_PROFILES_ACTIVE: prod Loading
.gitlab-ci.yml +105 −17 Original line number Diff line number Diff line Loading @@ -11,33 +11,121 @@ include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment-custom-image.yml' stages: - build - license-list - pre-package - package - test-package - post-package - deploy variables: PROJECT_PARENT_NAME: socket .docker-build: variables: DBLD_PARENT_IMAGE_NAME: ${REDMIC_SERVER_IMAGE_NAME} DBLD_PARENT_IMAGE_TAG: ${REDMIC_SERVER_IMAGE_TAG} .maven-build: variables: POSTGRES_IMAGE_TAG: 10.13-alpine POSTGRES_DB: redmic POSTGRES_USER: postgres POSTGRES_PASSWORD: password OAUTH_IMAGE_NAME: registry.gitlab.com/redmic-project/server/oauth/master OAUTH_IMAGE_TAG: latest OAUTH_CLIENT_ID: oauth_id OAUTH_CLIENT_SECRET: oauth_secret DIND_IMAGE_NAME: docker DIND_IMAGE_TAG: dind DOCKER_HOST: tcp://docker:2375 OAUTH_SERVER: http://docker:8081 SPRING_DATASOURCE_URL: jdbc:postgresql://docker:5432/redmic?stringtype=unspecified GITLAB_REGISTRY_HOST: registry.gitlab.com CI_DEPLOY_USER: ci_deploy_user CI_DEPLOY_PASSWORD: ci_deploy_password LOGGING_LEVEL_ROOT: error LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: error DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: socket services: - ${DIND_IMAGE_NAME}:${DIND_IMAGE_TAG} before_script: - > mkdir -p sql; chmod -R 755 sql; docker network create test - > docker run -d --rm --name postgres \ -p 5432:5432 \ --network test \ --network-alias db \ -e POSTGRES_DB \ -e POSTGRES_USER \ -e POSTGRES_PASSWORD \ -v $(pwd)/sql:/sql \ postgres:${POSTGRES_IMAGE_TAG} - > curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_DATA_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_DATA_TEST_SNIPPET_ID}/raw" - > RETRIES=10; until docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c 'select 1' > /dev/null 2>&1 || [ $RETRIES -eq 0 ]; do RETRIES=$((RETRIES-=1)); echo "Waiting for postgres server, ${RETRIES} remaining attempts..."; sleep 1; done; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c "ALTER ROLE ${USER_SPRING_DATASOURCE_USERNAME} WITH PASSWORD '${USER_SPRING_DATASOURCE_PASSWORD}'"; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_data_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_data_test.sql - > docker run -d --rm --name oauth \ -p 8081:8081 \ --network test \ -e SPRING_PROFILES_ACTIVE=dev \ -e SPRING_DATASOURCE_USERNAME=${USER_SPRING_DATASOURCE_USERNAME} \ -e SPRING_DATASOURCE_PASSWORD=${USER_SPRING_DATASOURCE_PASSWORD} \ ${OAUTH_IMAGE_NAME}:${OAUTH_IMAGE_TAG} after_script: - rm -rf .m2/repository/es - docker stop oauth postgres .deploy: script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID} OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} variables: STACK: ${PROJECT_PARENT_NAME} environment: url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} .deploy-development: variables: SPRING_PROFILES_ACTIVE: pre .deploy-production: variables: SPRING_PROFILES_ACTIVE: prod
Dockerfile +8 −2 Original line number Diff line number Diff line ARG PARENT_IMAGE_NAME ARG PARENT_IMAGE_TAG ARG PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server ARG PARENT_IMAGE_TAG=latest FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /dist/*.jar ./ ARG MICROSERVICE_NAME=socket ENV MICROSERVICE_NAME=${MICROSERVICE_NAME} ARG MICROSERVICE_PORT=8089 ENV MICROSERVICE_PORT=${MICROSERVICE_PORT} EXPOSE ${MICROSERVICE_PORT}
deploy/.env +3 −0 Original line number Diff line number Diff line PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG=latest MICROSERVICE_NAME=socket MICROSERVICE_PORT=8089
deploy/docker-compose.dev.yml +2 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,5 @@ version: '3.5' services: socket: ports: - target: ${MICROSERVICE_PORT} published: ${MICROSERVICE_PORT} mode: host environment: SPRING_PROFILES_ACTIVE: pre
deploy/docker-compose.prod.yml +2 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,5 @@ version: '3.5' services: socket: deploy: placement: constraints: - node.role == worker environment: SPRING_PROFILES_ACTIVE: prod