
Isingeniso
Kutshanje ndifunde "ngepokotho" yePaaS efana neHeroku enegama elicacileyo-iDokku. Nditsalwe kakhulu kukukwazi ukongeza ngokulula isatifikethi kwisicelo kunye ne-vhost ngaphandle kwebhokisi, ngoko ke ndagqiba ekubeni ndidlulisele imifanekiso yam yedocker kwiDokku. Enyanisweni, ndadana ukuba i-Dokku ayinayo imiyalelo efana ne-Heroku
dokku container:push
dokku container:release
// ΠΡΠ΅Π½Ρ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π΅ΡΠ΅ Π½Π΅Ρ :(
Kukho iqela ekuvumela ukuba usebenzise imifanekiso, kodwa umfanekiso ngokwawo kufuneka ube sele ukwinginginya ngalo mzuzu. Ngamanye amazwi, ukuze ukhuphe umfanekiso wendawo osanda kuwenza, kufuneka uqale uwukhuphele kumamkeli.
tags:create <app> <tag> # Add tag to latest running app image
tags:deploy <app> <tag> # Deploy tagged app image
tags:destroy <app> <tag> # Remove app image tag
Ndiqhelene ne-Ansible kwaye ndidale imibhobho yokuhanjiswa kwe-backend elula ngayo, ngoko ke ukhetho belulula. Ewe, ndingadinwa kwaye ndibhale iplagin ye-dokku, kodwa hayi, hayi ngoku.
Incwadi yokudlala
Le ncwadi yokudlala igcina umfanekiso wendawo, ikopishe kumamkeli, iwubuyisele kwaye iwubeke kwi-dokku. Iposwe kwi-Gitlab repo. Kusekho indawo eninzi yokuphucula.
push-image.dokku.yml
---
- name: "DEPLOY APP '{{ appname }}' TO DOKKU"
hosts: dokku_hosts
remote_user: root
gather_facts: false
vars:
tarname: "{{ appname }}__{{ image }}.tar"
upload_dir: "/usr/local/src"
upload_path: "{{ upload_dir }}/{{ tarname }}"
apptag: "{{ upload_tag | default('latest') }}"
dokku_image: "dokku/{{ appname }}:{{ apptag }}"
tasks:
- name: "Archive '{{ image }}' to upload"
register: env
delegate_to: localhost
shell:
cmd: docker image save -o "./{{ tarname }}" {{ image }}
- name: "Upload image '{{ image }}' to dokku at '{{ inventory_hostname }}'"
register: upload
copy:
src: "./{{ tarname }}"
dest: "{{ upload_path }}"
- name: "Log - Upload result"
debug:
var: upload.dest
- name: "Restore uploaded docker image"
register: restore
shell:
cmd: docker image load -i "{{ upload_path }}"
- name: "Log - Restore image"
debug:
var: restore.stdout_lines
- name: "Retag image to '{{ dokku_image }}'"
shell:
cmd: docker tag "{{ image }}" "{{ dokku_image }}"
- name: "Create dokku tag for '{{ dokku_image }}'"
shell:
cmd: dokku tags:create "{{ appname }}" "{{ apptag }}"
- name: "Release '{{ appname }}'"
register: release
shell:
cmd: dokku tags:deploy "{{ appname }}" "{{ apptag }}"
- name: "Log - Release"
debug:
var: release.stdout_lines
kucingelwa ukuba i-ansible sele ifakiwe kumatshini wendawo kunye ne-dokku kumamkeli
Sebenzisa ngolu hlobo
ansible-playbook push-image.dokku.yml -i some_inventory -e "appname=DOKKU_APP_NAME image=DOCKER_IMAGE"
ezinye_impahla
[dokku_hosts]
your.domain.example
umthombo: www.habr.com
