- name: Pull and run private GHCR image hosts: all become: true tasks: - name: Backup current resolv.conf ansible.builtin.copy: src: /etc/resolv.conf dest: /etc/resolv.conf.backup remote_src: true owner: root group: root mode: '0644' - name: Replace resolv.conf with electro version ansible.builtin.copy: src: /etc/resolv.conf.electro dest: /etc/resolv.conf remote_src: true owner: root group: root mode: '0644' - name: Log in to GitHub Container Registry community.docker.docker_login: registry_url: ghcr.io username: "{{ ghcr_username }}" password: "{{ ghcr_token }}" - name: Pull image from GHCR community.docker.docker_image: name: "{{ image_name }}" source: pull - name: Restore original resolv.conf ansible.builtin.copy: src: /etc/resolv.conf.backup dest: /etc/resolv.conf remote_src: true owner: root group: root mode: '0644' - name: Stop stage container if it exists docker_container: name: echo state: absent - name: Run container from image community.docker.docker_container: name: echo image: "{{ image_name }}" command: ["server_web"] restart_policy: always ports: - 8001:80 - 8002:3000 networks: - name: web - name: inception labels: traefik.enable: "true" traefik.docker.network: "web" traefik.http.routers.iecho.entrypoints: "web,websecure" traefik.http.routers.iecho.rule: "Host(`iecho.eron.co`)" 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.eron.co`)" 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"