実現したいこと
Dockerコンテナのバインドマウントされたディレクトリの中にサブディレクトリを作りたい
前提
Softether VPNを自分でビルドして運用しようとしています。
ログファイルはホストに保存したいので、ログのディレクトリはdocker-composeを使用してバインドマウントを行っています。
発生している問題・エラーメッセージ
コンテナ内でlsしてみても、ホストでlsしてみても、マウントされたディレクトリの中にあるはずのサブディレクトリが見当たりません。
(ファイルはすべて問題なく生成されています。)
docker-compose.yml内のvolumeを削除すると正常にサブディレクトリが生成されていることは確認しました。
該当のソースコード
Dockerfile
docker
1FROM alpine as builder 2ARG GIT_TAG=v4.38-9760-rtm 3RUN mkdir /usr/local/src && apk add binutils --no-cache\ 4 build-base \ 5 readline-dev \ 6 openssl-dev \ 7 ncurses-dev \ 8 git \ 9 cmake \ 10 zlib-dev \ 11 libsodium-dev \ 12 gnu-libiconv \ 13 wget 14 15ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so 16WORKDIR /usr/local/src 17RUN wget https://raw.githubusercontent.com/el1n/OpenWRT-package-softether/master/softethervpn/patches/102-regionunlock.patch 18RUN git clone -b ${GIT_TAG} https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git 19ENV USE_MUSL=YES 20RUN cd SoftEtherVPN_Stable &&\ 21 patch -p1 < ../102-regionunlock.patch &&\ 22 git submodule init &&\ 23 git submodule update &&\ 24 ./configure &&\ 25 make 26 27FROM alpine 28RUN apk add --no-cache readline \ 29 openssl \ 30 libsodium \ 31 gnu-libiconv\ 32 iptables 33ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so 34ENV LD_LIBRARY_PATH /root 35WORKDIR /usr/local/bin 36# ここから問題の箇所 37VOLUME /mnt 38RUN ln -s /mnt/vpn_server.config vpn_server.config && \ 39 mkdir /mnt/backup.vpn_server.config &&\ 40 ln -s /mnt/backup.vpn_server.config backup.vpn_server.config &&\ 41 ln -s /mnt/lang.config lang.config &&\ 42 ln -s /mnt/adminip.txt adminip.txt &&\ 43 ln -s /mnt/server_log server_log &&\ 44 mkdir /mnt/server_log &&\ 45 ln -s /mnt/security_log security_log &&\ 46 mkdir /mnt/security_log &&\ 47 ln -s /mnt/packet_log packet_log &&\ 48 mkdir /mnt/packet_log 49COPY --from=builder /usr/local/src/SoftEtherVPN_Stable/bin/vpnserver/vpnserver /usr/local/src/SoftEtherVPN_Stable/bin/v> 50 51EXPOSE 443/tcp 992/tcp 1194/tcp 1194/udp 5555/tcp 500/udp 4500/udp 52CMD ["/usr/local/bin/vpnserver", "execsvc"]
docker-compose.yml
yaml
1version: '3' 2 3networks: 4 vlan0: 5 name: vlan0 6 driver: macvlan 7 driver_opts: 8 parent: eno1 9 ipam: 10 config: 11 - subnet: *.*.*.*/* 12 gateway: *.*.*.* 13 14services: 15 softether: 16 build: . 17 cap_add: 18 - NET_ADMIN 19 restart: always 20 networks: 21 vlan0: 22 ipv4_address: *.*.*.* 23 volumes: 24 - "/etc/localtime:/etc/localtime:ro" 25 - "/etc/timezone:/etc/timezone:ro" 26 - "./softether_data:/mnt"
試したこと
./softether_dataの削除
→変化なし
バインドマウントをやめてみる
→正常にディレクトリが作られていることを確認
補足情報(FW/ツールのバージョンなど)
OS: Ubuntu Server 22.04.3
Docker version 24.0.6, build ed223bc

回答1件
あなたの回答
tips
プレビュー