Короче говоря, у меня нет статического IP-адреса от моего интернет-провайдера, тогда мне приходит идея создать свой собственный VPN-сервер с использованием образа Raspberry Pi 4, Raspbian и linuxserver.io wireguard. Затем за этими VPN стоит скрипт Nextcloud. До сих пор я делал это с docker-compose.yaml, но возвращал ошибку:
version: '3.7'
services:
wireguard:
privileged: true
image: ghcr.io/linuxserver/wireguard
container_name: wireguard
restart: unless-stopped
networks:
- backbone
volumes:
- './wireguard/config:/config'
- '/lib/modules:/lib/modules'
environment:
- PUID=1000
- PGID=1000
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
nextcloud:
privileged: true
depends_on:
- wireguard
image: ghcr.io/linuxserver/nextcloud
container_name: nextcloud
network_mode: service:wireguard
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
volumes:
- ./nextcloud/config:/config
- ./nextcloud/data:/data
ports:
- 8080:80
networks:
backbone:
driver: bridge
Я хочу, чтобы мой веб-интерфейс nextcloud был доступен извне с моим IP-адресом VPN, когда я захожу на http://my.vpn.ip:8080
Я добавляю строку network_mode: service:wireguard
в свой файл docker-compose.yaml, поэтому контейнер nextcloud будет в той же сети, что и контейнер wireguard. Но, похоже, он не работает с открытым портом 8080:80, который я уже настроил. Когда я запустил docker-compose up -d
, он вернулся с выводом ошибки следующим образом:
ERROR: for nextcloud Cannot create container for service nextcloud: conflicting options: port publishing and the container type network mode
ERROR: Encountered errors while bringing up the project.
Буду очень признателен, если кто-то поможет мне в этом. Спасибо.