From d327c1020efcd61ade63866c7f8f926d33db9fad Mon Sep 17 00:00:00 2001 From: Vasilii Mikhailovskii Date: Tue, 3 Dec 2024 11:49:01 +0200 Subject: [PATCH] ci couchdb --- .gitea/workflows/deploy-service-couchdb.yaml | 47 ++++++++++++++++++++ docker-compose.yml | 18 +++++--- services/couchdb/Dockerfile | 3 ++ 3 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 .gitea/workflows/deploy-service-couchdb.yaml create mode 100644 services/couchdb/Dockerfile diff --git a/.gitea/workflows/deploy-service-couchdb.yaml b/.gitea/workflows/deploy-service-couchdb.yaml new file mode 100644 index 0000000..5f2e52b --- /dev/null +++ b/.gitea/workflows/deploy-service-couchdb.yaml @@ -0,0 +1,47 @@ +name: Deploy service couchdb +run-name: ${{ github.actor }} deployed to build branch +on: + push: + branches: + - main + paths: + - 'services/couchdb/**' + - '.gitea/workflows/deploy-service-couchdb.yaml' + +jobs: + service couchdb: + runs-on: ubuntu-latest + + container: + volumes: + - /www/hereconnect.condev.ru:/www/hereconnect.condev.ru + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: build docker image + run: | + docker build --file services/couchdb/Dockerfile -t hereconnect/service-couchdb:${{env.GITHUB_SHA}} services/couchdb + + - name: start container + env: + COUCHDB_TAG: ${{ env:GITHUB_SHA }} + COUCHDB_USER: ${{ secrets.COUCHDB_USER }} + COUCHDB_PASSWORD: ${{ secrets.COUCHDB_PASSWORD }} + run: | + docker compose -p hereconnect up --pull never + docker tag hereconnect/service-couchdb:${{env.GITHUB_SHA}} hereconnect/service-couchdb:latest + + + - name: Rollback on Failure + if: failure() + env: + COUCHDB_TAG: latest + run: docker compose -p hereconnect up --pull never + + - name: cleanup docker image + if: always() + run: docker rmi hereconnect/service-couchdb:${{env.GITHUB_SHA}} diff --git a/docker-compose.yml b/docker-compose.yml index 66f0bd2..c627a51 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,15 +1,16 @@ services: couchdb: - image: couchdb:latest - env_file: - - couchdb.env + image: hereconnect/service-couchdb:${COUCHDB_TAG:-latest} ports: - - "127.0.0.1:5984:5984" + - "127.0.0.1:15984:5984" volumes: - - ./services/couchdb/data:/opt/couchdb/data - - ./services/couchdb/config:/opt/couchdb/etc/local.d + - couchdb_data:/opt/couchdb/data + + environment: + - COUCHDB_USER=${COUCHDB_USER} + - COUCHDB_PASSWORD=${COUCHDB_PASSWORD} restart: unless-stopped @@ -17,4 +18,7 @@ services: driver: "json-file" options: max-size: "100m" - max-file: "10" \ No newline at end of file + max-file: "10" + +volumes: + couchdb_data: diff --git a/services/couchdb/Dockerfile b/services/couchdb/Dockerfile new file mode 100644 index 0000000..def3692 --- /dev/null +++ b/services/couchdb/Dockerfile @@ -0,0 +1,3 @@ +FROM couchdb:latest + +COPY ./config/* /opt/couchdb/etc/local.d/* \ No newline at end of file