NA9D
1
みなさん、こんにちは。
私はSimpleHelpというサポートアプリケーションをContainer StationのDockerコンテナで運用しています。動作は非常に良好ですが、ひとつ問題があります。新しいリリースが出るたびにSimpleHelpソフトウェアをアップデートできません。もちろん、新しいコンテナを作成することはできますが、毎回それを行い、すべての設定を再構築するのは面倒です。
私がやりたいことは、コンテナ内のファイルにアクセスするか、コンテナを設定してNAS上のディレクトリを利用できるようにすることです。ボリュームをコンテナに作成することでこれを実現しようとしていますが、方法がはっきりせず、何度も行き詰まっています。ボリュームを作成しようとするとコンテナ名が必要ですが、入力するコンテナ名がすべて無効なパスだと表示されます。そこで止まってしまっています。
きっとこれを実現する方法があるはずなので、ここで質問させていただきます。
よろしくお願いします!
composeファイルでセットアップし、設定とデータをNAS上の永続フォルダーに保存します
例:
NA9D
3
ありがとうございます。でも正直なところ、どうやればいいのか全く分かりません!Dockerは全くの初心者で、composeスクリプトの書き方も分かりません…
ここに追加すればいいのでしょうか?
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /opt/appdata/simplehelp/configuration:/opt/SimpleHelp/configuration
そして、QNAP標準のフォルダパスをそのまま使えばいいのでしょうか?上記のパスはすべてコンテナ内のローカルパスですよね?では、コンテナ外のパスを指定するにはどうすればいいですか?
「/share/‘sharename’」であるべきです
NA9D
5
OK。では、次のような感じでいいでしょうか:
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /opt/appdata/simplehelp/configuration:/share/Container/SimpleHelp
これで合っていますか?
逆です…最初にローカルのマウント先、その後にコンテナ内の場所です
- /share/Container/SimpleHelp:/opt/appdata/simplehelp/configuration
NA9D
7
OK。後ろに :rw を指定する必要がありますか?それとも read/write と書くべきですか?それともそのままにしておけばいいですか?
デフォルトはrwで、そのフラグによってroが設定されると思います。
例えば、Plexメディアフォルダをroに設定すれば、コンテナがマルウェアに感染してもメディアファイルを削除できなくなります。
NA9D
9
OK。ありがとうございます。試してみます。
ところで、NASから既存のコンテナファイルを読み取る方法はありますか?まだ方法が分かりません。できないのでしょうか?
WinSCP(簡単なGUIのため)を使って作成されたボリュームにアクセスできます。ここに表示されている場所に移動してください。
NA9D
11
はい、現在のコンテナにはボリュームがありません。リポジトリからウィザードを使って作成しました。
File Stationで以下の場所に入ることができます:
/Container/container-station-data/lib/docker/containers/aa5528825f8a5980c5caffbc046d9057ee10f0fadea6a932697fb5fac51ce90c
しかし、その中には役立つものは何もありません。ここでWinSCPが必要なのでしょうか?
うーん…コンテナのSSHセッションを追加して、コンテナに直接接続してみることができます(SSH経由でも動作するはずです)。
NA9D
13
コンテナのコンソールにはアクセスできるのですが、そこから外に出る方法が分かりません…
NA9D
14
OK。何か間違ったことをしてしまいました。YMLファイルを取得し、話し合った通りデータを保存するためのローカルボリュームを追加するように修正しました。これをContainerStationでアプリケーションとして作成しました。しかし、アプリケーションは表示されませんでした。ただし、Imagesに別のDockerイメージが表示されました。それをインストールして起動しましたが、データ保存用にNAS上に作成したフォルダーには何も保存されていませんでした。
同じDockerイメージをダウンロードしましたが、デフォルトのインストールには3つのNATポートマッピングが含まれていました
SSH
HTTP
HTTPS
そのSSHに接続できるか確認してみてください
NA9D
16
残念ながら、できません。接続が拒否されています。SimpleHelp管理アプリを使ってサーバーデータのバックアップは取得できています。ですので、今そのデータをNAS上のアクセス可能なフォルダーに保存する方法が分かれば、バックアップから復元できるはずです。しかし、YMLファイルでの試みはうまくいかなかったようです。なので、そこに集中しましょう…
NA9D
17
アプリが作成されていないようです:
アプリケーション「simplehelp」の作成に失敗しました。エラーメッセージ: operateAppアクション [--project-name simplehelp up -d --remove-orphans] が失敗しました: exit status 1: time="2025-03-27T12:19:37-05:00" level=warning msg="/share/CACHEDEV2_DATA/.qpkg/container-station/data/application/simplehelp/docker-compose.yml: 属性「version」は廃止されており、無視されます。混乱を避けるために削除してください" network frontbridgeはexternalとして宣言されていますが、見つかりませんでした
NA9D
19
version: "3.2"
services:
#SimpleHelp コンテナ
simplehelp:
image: tecneo/simplehelp
container_name : simplehelp
ports:
- "8680:80"
- "8681:80/udp"
- "8643:443"
- "8643:443/udp"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /share/Container/SimpleHelp/configuration:/opt/SimpleHelp/configuration
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.simplehelp.rule=Host(`SUBDOMAIN.DOMAIN.EXT`)"
- "traefik.http.routers.simplehelp.entrypoints=web,websecure"
- "traefik.http.routers.simplehelp.tls.certresolver=myresolver"
- "traefik.http.services.simplehelp.loadbalancer.server.port=80"
- "traefik.udp.routers.simplehelp-udp.entrypoints=webudp"
- "traefik.udp.routers.simplehelp-udp.service=simplehelp"
- "traefik.udp.services.simplehelp.loadbalancer.server.port=80"
networks:
- frontbridge
networks:
frontbridge:
external: true
そのパス名は、あなたが投稿したGitHubリンクにあったものから変更しただけです。
こちらではネットワークセクションを削除すると正常に動作します(NATとしてすでに上の方で定義されていました)
services:
#SimpleHelp コンテナ
simplehelp:
image: tecneo/simplehelp
container_name : simplehelp
ports:
- "8680:80"
- "8681:80/udp"
- "8643:443"
- "8643:443/udp"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /share/Container/SimpleHelp/configuration:/opt/SimpleHelp/configuration
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.simplehelp.rule=Host(`SUBDOMAIN.DOMAIN.EXT`)"
- "traefik.http.routers.simplehelp.entrypoints=web,websecure"
- "traefik.http.routers.simplehelp.tls.certresolver=myresolver"
- "traefik.http.services.simplehelp.loadbalancer.server.port=80"
- "traefik.udp.routers.simplehelp-udp.entrypoints=webudp"
- "traefik.udp.routers.simplehelp-udp.service=simplehelp"
- "traefik.udp.services.simplehelp.loadbalancer.server.port=80"
こちらでは設定フォルダーが正常に埋められています