52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
- name: Pull and run private GHCR image
|
|
hosts: all
|
|
become: true
|
|
|
|
tasks:
|
|
|
|
- name: Log in to GitHub Container Registry
|
|
community.docker.docker_login:
|
|
registry_url: ghcr.io
|
|
username: "{{ ghcr_username }}"
|
|
password: "{{ ghcr_token }}"
|
|
|
|
- name: Stop stage container if it exists
|
|
docker_container:
|
|
name: echo
|
|
state: absent
|
|
|
|
- name: Remove old image if exists
|
|
docker_image:
|
|
name: "{{ image_name }}"
|
|
state: absent
|
|
force_absent: true
|
|
|
|
- name: Pull image from GHCR
|
|
community.docker.docker_image:
|
|
name: "{{ image_name }}"
|
|
source: pull
|
|
|
|
- name: Run container from image
|
|
docker_container:
|
|
name: echo
|
|
image: "{{ image_name }}"
|
|
command: ["server_web"]
|
|
restart_policy: always
|
|
state: started
|
|
networks:
|
|
- name: traefik
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.docker.network: "web"
|
|
traefik.http.routers.iecho.entrypoints: "web,websecure"
|
|
traefik.http.routers.iecho.rule: "Host(`iecho.omidshj.ir`)"
|
|
traefik.http.services.iecho.loadbalancer.server.port: "80"
|
|
traefik.http.routers.iecho.tls: "true"
|
|
traefik.http.routers.iecho.tls.certresolver: "letsencrypt"
|
|
traefik.http.routers.iecho.service: "iecho"
|
|
traefik.http.routers.echo.entrypoints: "web,websecure"
|
|
traefik.http.routers.echo.rule: "Host(`echo.omidshj.ir`)"
|
|
traefik.http.services.echo.loadbalancer.server.port: "3000"
|
|
traefik.http.routers.echo.tls: "true"
|
|
traefik.http.routers.echo.tls.certresolver: "letsencrypt"
|
|
traefik.http.routers.echo.service: "echo" |