Compare commits

...

2 Commits

Author SHA1 Message Date
3b001cc2fb
Change git repositories url 2025-04-13 11:06:37 +03:00
f523f6c39a
Change deploy to use ansible 2025-04-13 11:06:20 +03:00
3 changed files with 15 additions and 53 deletions

View File

@ -113,7 +113,18 @@ tasks:
sh: git rev-parse --short HEAD sh: git rev-parse --short HEAD
TIMESTAMP: TIMESTAMP:
sh: date +%s sh: date +%s
IMAGE_TAG: homepage-nginx:{{.COMMIT_HASH}}-{{.TIMESTAMP}} DOCKER_IMAGE: homepage-nginx:{{.COMMIT_HASH}}-{{.TIMESTAMP}}
cmds: cmds:
- task: build-prod - task: build-prod
- docker build --pull --file docker/Dockerfile.nginx.prod --tag {{.IMAGE_TAG}} . - docker build --pull --file docker/Dockerfile.nginx.prod --tag {{.DOCKER_IMAGE}} .
- task: deploy-with-ansible
vars:
DOCKER_IMAGE: '{{.DOCKER_IMAGE}}'
deploy-with-ansible:
internal: true
requires:
vars: [DOCKER_IMAGE]
dir: '/home/av/projects/private/pet-project-server'
cmd: ansible-playbook -i production.yml playbook-app-homepage.yml --extra-vars 'homepage_web_image={{.DOCKER_IMAGE}}'

View File

@ -41,8 +41,8 @@ use: [articles]
</a> </a>
</li> </li>
<li class="social__item"> <li class="social__item">
<a class="social__link" href="https://github.com/anwinged" target="_blank" title="Код на Гитхабе"> <a class="social__link" href="https://git.vakhrushev.me" target="_blank" title="Код на Гитхабе">
<i class="fab fa-github"></i> <i class="fab fa-git-square"></i>
</a> </a>
</li> </li>
<li class="social__item"> <li class="social__item">

View File

@ -1,49 +0,0 @@
from fabric import Connection
from invoke import task
from datetime import datetime
import subprocess
import shlex
APP_NAME = "homepage"
SSH_HOST = "homepage@51.250.85.23"
DOCKER_REGISTRY = "cr.yandex/crplfk0168i4o8kd7ade"
def run(args):
return subprocess.run(args, check=True, capture_output=True).stdout
@task
def deploy(c):
timestamp = int(datetime.now().timestamp())
commit = run(["git", "rev-parse", "--short", "HEAD"]).decode("utf-8").strip()
nginx_image_tag = f"{DOCKER_REGISTRY}/homepage-nginx:{commit}-{timestamp}"
print(f"Build nginx image {nginx_image_tag}")
run(
[
"docker",
"build",
"--file",
"docker/Dockerfile.nginx.prod",
"--tag",
nginx_image_tag,
".",
]
)
print("Push nginx image")
run(["docker", "push", nginx_image_tag])
print("Ready to setup remote host")
with Connection(SSH_HOST) as c:
c.put(
"./docker/docker-compose.prod.yml",
remote="/home/homepage/docker-compose.yml",
)
c.run("cp .env .env.prod")
c.run(f"echo NGINX_IMAGE={shlex.quote(nginx_image_tag)} >> .env.prod")
c.run(f"docker-compose --project-name {shlex.quote(APP_NAME)} --env-file=.env.prod up --detach")