I 'm trying to setup a caddy reverse proxy within Docker and I am following the guide in this YouTube video

https://www.youtube.com/watch?v=qj45uHP7Jmo but when I the run docker compose up -d command I get this error:

failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting “/home/Joe/container/caddy/Caddyfile” to rootfs at “/etc/caddy/Caddyfile”: create mountpoint for /etc/caddy/Caddyfile mount: cannot create subdirectories in “/var/lib/docker/overlay2/49e15938cd9c418a331b963f6fbbd3bba726b28748113ee8d028f6adf034b525/merged/etc/caddy/Caddyfile”: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

I am a bit perplexed on what I am doing wrong so any advice would be appreciated!

  • roofuskit@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    21 hours ago

    Can you share your compose file? You should be able to paste into code blocks in a comment or your original post. It’s likely you’ve yamld something wrong.

  • 👻👻👻@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    5
    ·
    21 hours ago

    Do you already have the file created and populated at ‘/home/Joe/container/caddy/Caddyfile’ before running your up command?

    • WubbyGeth@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      20 hours ago

      I do but I am wondering if the syntax in my caddyfile is wrong.

      I did get past my initial error thanks to this group but I cannot get to my portainer via host name still.

      • Xanza@lemm.ee
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        16 hours ago

        I do but I am wondering if the syntax in my caddyfile is wrong.

        Caddy can format caddyfiles;

        caddy fmt --overwrite /home/Joe/container/caddy/Caddyfile
        caddy validate --config /home/Joe/container/caddy/Caddyfile --adapter caddyfile
        
  • WubbyGeth@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    21 hours ago

    Here is my YAMLD YAML haha

    version: ‘3.3’ networks: caddy: services: portainer: image: portainer/portainer-ce:latest container_name: portainer2 restart: unless-stopped security_opt: - no-new-privileges:true volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /home/Joe/containers/portainer/portainer-data:/data networks: - caddy ports: - 9000:9000

    caddy: image: caddy:latest restart: unless-stopped container_name: caddy ports: - 80:80 - 443:443 volumes: - /home/Joe/container/caddy/Caddyfile:/etc/caddy/Caddyfile - /home/Joe/container/caddy/site:/srv - /home/Joe/container/caddy/caddy_data:/data - /home/Joe/container/caddy/caddy_config:/config networks: - caddy volumes: caddy_data:

    • HelloRoot@lemy.lol
      link
      fedilink
      English
      arrow-up
      6
      ·
      20 hours ago

      The error suggests that you’re trying to mount a file (Caddyfile) onto a directory or vice versa. Let’s debug this step by step.

      Steps to Fix:

      1. Check if the path exists and is correct Run:

        ls -ld /home/Joe/container/caddy/Caddyfile
        
        • If it’s a directory, it should be a file instead.
        • If it doesn’t exist, create an empty one:
          touch /home/Joe/container/caddy/Caddyfile
          
      2. Ensure correct permissions

        chmod 644 /home/Joe/container/caddy/Caddyfile
        
      3. Check YAML Formatting
        Your docker-compose.yml seems to have incorrect indentation and improper quotes around version. Here’s a fixed version:

        version: "3.3"
        
        networks:
          caddy:
        
        services:
          portainer:
            image: portainer/portainer-ce:latest
            container_name: portainer2
            restart: unless-stopped
            security_opt:
              - no-new-privileges:true
            volumes:
              - /etc/localtime:/etc/localtime:ro
              - /var/run/docker.sock:/var/run/docker.sock:ro
              - /home/Joe/containers/portainer/portainer-data:/data
            networks:
              - caddy
            ports:
              - 9000:9000
        
          caddy:
            image: caddy:latest
            restart: unless-stopped
            container_name: caddy
            ports:
              - 80:80
              - 443:443
            volumes:
              - /home/Joe/container/caddy/Caddyfile:/etc/caddy/Caddyfile
              - /home/Joe/container/caddy/site:/srv
              - /home/Joe/container/caddy/caddy_data:/data
              - /home/Joe/container/caddy/caddy_config:/config
            networks:
              - caddy
        
      4. Restart Docker and Try Again

        docker compose down
        docker compose up -d
        

      If the error persists, check docker logs caddy for additional hints.

  • funkajunk@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    21 hours ago

    I have always had trouble whenever I tried mounting files, and it seems that you’re getting the same error, “not a directory”.

    Stick to mounting directories and you should be fine

    /home/Joe/container/caddy:/etc/caddy

  • enemenemu@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    11 hours ago

    I was successful in installing and using caddy directly on my host instead of podman (docker).

    Edit: someone doesn’t like that I succeeded at it …