Wireguard Docker-Compose Not Making Config - eviltoast

I’m following a guide on youtube on how to set up Wireguard in docker compose so I can access my server outside my home network. When I start the container, it’s supposed to create a config directory but when I ls, theres no config directory. Can somebody help me out? Here’s the docker-compose.yml.

version: "2.1" services: wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Asia/Singapore - SERVERURL=auto #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional volumes: - /opt/wireguard-server/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped

  • justcallmelarry@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    6
    ·
    4 days ago

    Your files are now being placed in /opt/wireguard-server/config, not in the folder you have the docker-compose file, can you see them there with ls?

    If you want thee files to be created in the directory where your compose file is you should change the path in the volume like so (notice the ./ on the left side of the colon):

    - ./config:/config
    

    Volume paths are specified with local-path:container-path, so changing the part before the colon specifies where your files are, and changing the part after the colon specifies where the container sees the files

    Hope this makes sense, but I just woke up, so it might not

  • sporks_a_plenty@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    4 days ago

    I’m not a docker pro, so I may be wrong…

    It looks to me like your syntax is formatted as if you’re assigning an external bind mount, not a volume.

    IIRC, volume mounts are <name>:<path_inside_container>, and docker will automatically pre-pend the service name to the vol name (e. g. /opt/docker/volumes/wireguard-<name>)

    So, you could try something like:

    volumes:
          - wireguard-server-config:/config
          - wireguard-modules:/lib/modules
    

    ref: https://docs.docker.com/engine/storage/volumes/#use-a-volume-with-docker-compose