- 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: 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: 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: Run container from image docker_container: name: echo image: "{{ image_name }}" command: ["server_web"] restart_policy: always state: started 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: "httpresolver" 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: "httpresolver" traefik.http.routers.echo.service: "echo"