diff --git a/.deploy-infra/deploy-dev.yaml b/.deploy-infra/deploy-dev.yaml index a370d41..0153955 100644 --- a/.deploy-infra/deploy-dev.yaml +++ b/.deploy-infra/deploy-dev.yaml @@ -129,21 +129,17 @@ services: parallelism: 1 order: start-first - grafana: - image: grafana/grafana:9.1.7-ubuntu + docker-cleaner: + image: mathwave/sprint-repo:sprint-infra-docker-cleaner volumes: - - /sprint-data/grafana:/var/lib/grafana - ports: - - "3000:3000" + - /var/run/docker.sock:/var/run/docker.sock deploy: - mode: replicated - placement: - constraints: [node.role == manager] + mode: global restart_policy: condition: any update_config: parallelism: 1 - order: start-first + order: stop-first volumes: minio_data: diff --git a/.deploy-infra/deploy-prod.yaml b/.deploy-infra/deploy-prod.yaml index 7e727c1..0ea425f 100644 --- a/.deploy-infra/deploy-prod.yaml +++ b/.deploy-infra/deploy-prod.yaml @@ -128,38 +128,18 @@ services: update_config: parallelism: 1 order: start-first - - grafana: - image: grafana/grafana:9.1.7-ubuntu - volumes: - - /sprint-data/grafana:/var/lib/grafana - ports: - - "3000:3000" - deploy: - mode: replicated - placement: - constraints: [node.role == manager] - restart_policy: - condition: any - update_config: - parallelism: 1 - order: start-first - registry: - image: registry:2.8.1 + docker-cleaner: + image: mathwave/sprint-repo:sprint-infra-docker-cleaner volumes: - - /sprint-data/registry:/var/lib/registry - ports: - - "5000:5000" + - /var/run/docker.sock:/var/run/docker.sock deploy: - mode: replicated - placement: - constraints: [node.role == manager] + mode: global restart_policy: condition: any update_config: parallelism: 1 - order: start-first + order: stop-first volumes: minio_data: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69fe372..f346f26 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,9 +9,7 @@ stages: - docker network create -d overlay --attachable swarmpit-nginx || true - docker network create -d overlay --attachable common-infra-nginx || true - mkdir /sprint-data/mongo || true - - mkdir /sprint-data/grafana || true - mkdir /sprint-data/redis || true - - mkdir /sprint-data/registry || true - chmod 777 /sprint-data/grafana - chmod 777 /sprint-data/redis - chmod 777 /sprint-data/registry @@ -27,6 +25,8 @@ build: - docker push mathwave/sprint-repo:sprint-infra-nginx-dev - docker build -t mathwave/sprint-repo:sprint-infra-nginx-prod nginx/nginx-prod - docker push mathwave/sprint-repo:sprint-infra-nginx-prod + - docker build -t mathwave/sprint-repo:sprint-infra-docker-cleaner docker-cleaner + - docker push mathwave/sprint-repo:sprint-infra-docker-cleaner deploy-dev: stage: deploy-dev diff --git a/docker-cleaner/Dockerfile b/docker-cleaner/Dockerfile new file mode 100644 index 0000000..f6ce105 --- /dev/null +++ b/docker-cleaner/Dockerfile @@ -0,0 +1,17 @@ +FROM ubuntu:20.04 + +RUN apt-get update +RUN apt-get install --yes ca-certificates curl gnupg lsb-release +RUN mkdir -p /etc/apt/keyrings +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg +RUN echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null +RUN apt-get update --yes +RUN apt-get install --yes docker-ce docker-ce-cli containerd.io docker-compose-plugin + +RUN mkdir /usr/src/app +WORKDIR /usr/src/app +COPY clean.sh clean.sh +RUN chmod 777 clean.sh +CMD ["./clean.sh"] \ No newline at end of file diff --git a/docker-cleaner/clean.sh b/docker-cleaner/clean.sh new file mode 100644 index 0000000..f879f4e --- /dev/null +++ b/docker-cleaner/clean.sh @@ -0,0 +1,5 @@ +while true +do + docker image rm $(docker image ls -q) || true + sleep(86400) +done \ No newline at end of file