Compare commits
No commits in common. "3b001cc2fbd6fc6fffd2c69ffa2ac7230885908b" and "fdb82bddf59feddb8df180d4cffc9c52c03915df" have entirely different histories.
3b001cc2fb
...
fdb82bddf5
15
Taskfile.yml
15
Taskfile.yml
@ -113,18 +113,7 @@ tasks:
|
|||||||
sh: git rev-parse --short HEAD
|
sh: git rev-parse --short HEAD
|
||||||
TIMESTAMP:
|
TIMESTAMP:
|
||||||
sh: date +%s
|
sh: date +%s
|
||||||
DOCKER_IMAGE: homepage-nginx:{{.COMMIT_HASH}}-{{.TIMESTAMP}}
|
IMAGE_TAG: homepage-nginx:{{.COMMIT_HASH}}-{{.TIMESTAMP}}
|
||||||
cmds:
|
cmds:
|
||||||
- task: build-prod
|
- task: build-prod
|
||||||
- docker build --pull --file docker/Dockerfile.nginx.prod --tag {{.DOCKER_IMAGE}} .
|
- docker build --pull --file docker/Dockerfile.nginx.prod --tag {{.IMAGE_TAG}} .
|
||||||
- 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}}'
|
|
||||||
|
@ -41,8 +41,8 @@ use: [articles]
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="social__item">
|
<li class="social__item">
|
||||||
<a class="social__link" href="https://git.vakhrushev.me" target="_blank" title="Код на Гитхабе">
|
<a class="social__link" href="https://github.com/anwinged" target="_blank" title="Код на Гитхабе">
|
||||||
<i class="fab fa-git-square"></i>
|
<i class="fab fa-github"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="social__item">
|
<li class="social__item">
|
||||||
|
49
tasks.py
Normal file
49
tasks.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
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")
|
Loading…
Reference in New Issue
Block a user