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!

  • HelloRoot@lemy.lol
    link
    fedilink
    English
    arrow-up
    6
    ·
    13 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.