diff --git a/.gitea/workflows/ci-cd.yml b/.gitea/workflows/ci-cd.yml index 510b7d5..faad417 100644 --- a/.gitea/workflows/ci-cd.yml +++ b/.gitea/workflows/ci-cd.yml @@ -350,7 +350,12 @@ jobs: sha = os.environ.get("GITHUB_SHA") or "" server_url = os.environ.get("GITHUB_SERVER_URL", "").rstrip("/") repository_url = f"{server_url}/{repository}" if server_url and repository else "" - celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:dev" + image_tag = ( + f"{branch.replace('/', '-')}-{sha[:7]}" + if branch and sha + else branch or "dev" + ) + celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:{image_tag}" payload = { "ref": f"refs/heads/{branch}", "after": sha, @@ -380,8 +385,9 @@ jobs: "sha": sha, "actor": os.environ.get("GITHUB_ACTOR"), "target": os.environ.get("CURRENT_DOKPLOY_TARGET"), + "image_tag": image_tag, "images": { - "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:dev", + "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:{image_tag}", "worker": celery_image, "beat": celery_image, }, @@ -473,7 +479,12 @@ jobs: sha = os.environ.get("GITHUB_SHA") or "" server_url = os.environ.get("GITHUB_SERVER_URL", "").rstrip("/") repository_url = f"{server_url}/{repository}" if server_url and repository else "" - celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:dev" + image_tag = ( + f"{branch.replace('/', '-')}-{sha[:7]}" + if branch and sha + else branch or "dev" + ) + celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:{image_tag}" payload = { "ref": f"refs/heads/{branch}", "after": sha, @@ -503,8 +514,9 @@ jobs: "sha": sha, "actor": os.environ.get("GITHUB_ACTOR"), "target": os.environ.get("CURRENT_DOKPLOY_TARGET"), + "image_tag": image_tag, "images": { - "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:dev", + "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:{image_tag}", "worker": celery_image, "beat": celery_image, }, @@ -703,7 +715,12 @@ jobs: sha = os.environ.get("GITHUB_SHA") or "" server_url = os.environ.get("GITHUB_SERVER_URL", "").rstrip("/") repository_url = f"{server_url}/{repository}" if server_url and repository else "" - celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:dev" + image_tag = ( + f"{branch.replace('/', '-')}-{sha[:7]}" + if branch and sha + else branch or "dev" + ) + celery_image = f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['CELERY_IMAGE']}:{image_tag}" payload = { "ref": f"refs/heads/{branch}", "after": sha, @@ -733,8 +750,9 @@ jobs: "sha": sha, "actor": os.environ.get("GITHUB_ACTOR"), "target": os.environ.get("CURRENT_DOKPLOY_TARGET"), + "image_tag": image_tag, "images": { - "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:dev", + "web": f"{os.environ['REGISTRY_HOST']}/{os.environ['REGISTRY_NAMESPACE']}/{os.environ['WEB_IMAGE']}:{image_tag}", "worker": celery_image, "beat": celery_image, }, diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 1fda102..fdad9d5 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -16,6 +16,7 @@ services: migrate: build: *web-build image: ${WEB_IMAGE:-mostovik/web:latest} + pull_policy: always container_name: mostovik_migrate env_file: - .env.prod @@ -27,6 +28,7 @@ services: web: build: *web-build image: ${WEB_IMAGE:-mostovik/web:latest} + pull_policy: always container_name: mostovik_web restart: unless-stopped env_file: @@ -46,6 +48,7 @@ services: celery_worker: build: *celery-build image: ${CELERY_IMAGE:-mostovik/celery:latest} + pull_policy: always container_name: mostovik_celery_worker restart: unless-stopped environment: @@ -66,6 +69,7 @@ services: celery_beat: build: *celery-build image: ${CELERY_IMAGE:-mostovik/celery:latest} + pull_policy: always container_name: mostovik_celery_beat restart: unless-stopped env_file: