Loading .dockerignore 0 → 100644 +2 −0 Original line number Diff line number Diff line * !/dist/*.jar .env 0 → 100644 +2 −0 Original line number Diff line number Diff line MICROSERVICE_NAME=db2es MICROSERVICE_PORT=8094 .gitignore 0 → 100644 +40 −0 Original line number Diff line number Diff line .gradle *.sw? .#* *# *~ /build /code .classpath .project .settings .metadata .factorypath .recommenders .mvn bin build lib/ target .factorypath .springBeans interpolated*.xml dependency-reduced-pom.xml build.log _site/ .*.md.html manifest.yml MANIFEST.MF settings.xml activemq-data overridedb.* *.iml *.ipr *.iws *.log .idea *.jar .DS_Store .factorypath dump.rdb transaction-logs .gitlab-ci.yml 0 → 100644 +177 −0 Original line number Diff line number Diff line stages: - build - package - test-package - deploy maven-build: stage: build image: registry.gitlab.com/redmic-project/docker/maven:latest variables: MAVEN_OPTS: -Dmaven.repo.local=.m2/repository SPRING_PROFILES_ACTIVE: test SPRING_DATASOURCE_USERNAME: ${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD: ${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME: ${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD: ${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER: ${DEV_ELASTIC_XPACKSECURITYUSER} only: - branches except: - master cache: paths: - .m2/repository/ script: - mvn verify spring-boot:repackage -B after_script: - rm -r .m2/repository/es artifacts: name: "${CI_PROJECT_NAME}" expire_in: '6 months' paths: - dist/*.jar docker-build-commit: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-tag: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - tags script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} container_scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches except: - master script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER} environment: name: dev url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - dev deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER} environment: name: dev url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - branches except: - master - dev when: manual deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_TAG} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=prod SPRING_DATASOURCE_USERNAME=${PRO_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${PRO_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${PRO_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${PRO_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${PRO_ELASTIC_XPACKSECURITYUSER} environment: name: pro url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - tags when: manual Dockerfile 0 → 100644 +12 −0 Original line number Diff line number Diff line ARG PARENT_IMAGE_NAME ARG PARENT_IMAGE_TAG FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /dist/*.jar ./ EXPOSE ${MICROSERVICE_PORT} ENTRYPOINT java ${JAVA_OPTS} \ -Djava.security.egd=file:/dev/./urandom \ -jar ${DIRPATH}/${MICROSERVICE_NAME}.jar Loading
.env 0 → 100644 +2 −0 Original line number Diff line number Diff line MICROSERVICE_NAME=db2es MICROSERVICE_PORT=8094
.gitignore 0 → 100644 +40 −0 Original line number Diff line number Diff line .gradle *.sw? .#* *# *~ /build /code .classpath .project .settings .metadata .factorypath .recommenders .mvn bin build lib/ target .factorypath .springBeans interpolated*.xml dependency-reduced-pom.xml build.log _site/ .*.md.html manifest.yml MANIFEST.MF settings.xml activemq-data overridedb.* *.iml *.ipr *.iws *.log .idea *.jar .DS_Store .factorypath dump.rdb transaction-logs
.gitlab-ci.yml 0 → 100644 +177 −0 Original line number Diff line number Diff line stages: - build - package - test-package - deploy maven-build: stage: build image: registry.gitlab.com/redmic-project/docker/maven:latest variables: MAVEN_OPTS: -Dmaven.repo.local=.m2/repository SPRING_PROFILES_ACTIVE: test SPRING_DATASOURCE_USERNAME: ${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD: ${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME: ${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD: ${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER: ${DEV_ELASTIC_XPACKSECURITYUSER} only: - branches except: - master cache: paths: - .m2/repository/ script: - mvn verify spring-boot:repackage -B after_script: - rm -r .m2/repository/es artifacts: name: "${CI_PROJECT_NAME}" expire_in: '6 months' paths: - dist/*.jar docker-build-commit: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-tag: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/redmic-server PARENT_IMAGE_TAG: latest services: - docker:dind only: - tags script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - > docker build --build-arg PARENT_IMAGE_NAME=${PARENT_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${PARENT_IMAGE_TAG} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} container_scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches except: - master script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER} environment: name: dev url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - dev deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER} environment: name: dev url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - branches except: - master - dev when: manual deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_TAG} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=prod SPRING_DATASOURCE_USERNAME=${PRO_SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD=${PRO_SPRING_DATASOURCE_PASSWORD} JOBS_DATASOURCE_USERNAME=${PRO_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${PRO_JOBS_DATASOURCE_PASSWORD} ELASTIC_XPACKSECURITYUSER=${PRO_ELASTIC_XPACKSECURITYUSER} environment: name: pro url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME} only: - tags when: manual
Dockerfile 0 → 100644 +12 −0 Original line number Diff line number Diff line ARG PARENT_IMAGE_NAME ARG PARENT_IMAGE_TAG FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /dist/*.jar ./ EXPOSE ${MICROSERVICE_PORT} ENTRYPOINT java ${JAVA_OPTS} \ -Djava.security.egd=file:/dev/./urandom \ -jar ${DIRPATH}/${MICROSERVICE_NAME}.jar