2017-08-24 11 views
2

Linux Dockerコンテナ内のAzure上でghostドッカー画像を実行しようとしています。これは起きて、using a custom Docker image for Azure Web App on Linuxを実行し、ゴーストのための公式のドッカーハブイメージを指すことは信じられないほど簡単です。Azure Web App内のドッカー再起動中にコンテンツを保存する

残念ながら、/ var/lib/ghostパス上のすべてのデータは再起動時に保存されないので、コンテナが再起動されるとすべてのコンテンツが削除され、デフォルトのゴーストインストールで終了します。

Azureは、基本的にドッカーのイメージを指し示す任意のコマンドを実行させません。そこから発射されるため、-vコマンドラインパラメータを使用してボリュームをマップすることはできません。ドッカー画像にはエントリポイントが設定されていれば役立ちます。

どのような提案も素晴らしいでしょう。ありがとう!

答えて

1

あなたはいくつかのオプションがあります:あなたは、データを格納し、カスタムイメージを作成することにより、ドッカー容器内のファイル共有をマウントすることができ

  1. をそこ。詳細については、these docsを参照してください。
  2. ボリュームをサポートするため、新しいcontainer instancesに切り替えることができます。
  3. Azure Container Serviceに切り替えることができます。これには、Kubernetesのようなオーケストレーターが必要であり、探しているよりも多くの作業が必要ですが、柔軟性が高く、信頼性とスケーリングが向上し、その他の利点があります。
+0

オプション1は潜在的可能性があるようですが、私はドッカービルドにファイル共有アクセスキーを焼く必要があると仮定しています誰とでも共有することは不可能です。 –

+1

質問には言及していないので、シナリオを理解するのは難しいですが、他の人が自分のキーを指定できるようにファイル共有キーを環境変数として指定することもできます。 –

+0

あなたが正しいと思う私は、私がそれを共有できるようにしたいと思うカスタムドッカーファイルを構築しようとしていたのであれば、私は考えていませんでした。私は、環境変数を使ってカスタムイメージを作成してみて、それがどのように動作するかを見ていきます。 –

1

コンテナ/var/lib/ghostディレクトリのコンテンツをホストディレクトリにマップする共有ボリュームを使用する必要があります。これにより、データはホストディレクトリに保持されます。

これを行うには、次のコマンドを使用します。

$ docker run -d --name some-ghost -p 3001:2368 -v /path/to/ghost/blog:/var/lib/ghost/content ghost:1-alpine 
+0

残念ながら私はコマンドラインから実行していません。明確にするために質問を更新しました –

1

私はAzureと一緒に働いたことがないので、私は100%以下が当てはまるわけではありません。しかし、CLIを介してドッカーに接続すると、それが適用される可能性が高くなります。

ドッカーの持続性はボリュームで処理されます。基本的には、コンテナのファイルシステムツリー内に、外部のディレクトリにマウントされます。あなたのテキストから、内側の内容を外側に/var/lib/ghost path/home/site/wwwrootに保存したいと思っています。これを行うには、次のようにドッキングウィンドウを呼び出します。

$ docker run [...] -v /var/lib/ghost:/home/site/wwwroot ghost

+0

残念ながら私はコマンドラインから実行していません。明確にするために質問を更新しました –

+0

悪いです。私はDocker for Azureのドキュメントでこれを見つけました:https://docs.docker.com/docker-for-azure/persistent-data-volumes/ – fzgregor

+0

ありがとうございます、しかし私は群を使用していません私はAzure Web Appを使用していますLinuxの場合:https://docs.microsoft.com/en-us/azure/app-service-web/app-service-linux-using-custom-docker-image –

1

残念ながら、永続ストレージを設定する(または独自のストレージを特定のパスに設定する)ことは、現在、LinuxのAzure Web Appsではサポートされていません。 これは、sshを使って遊んで、ghostが/ var/lib /の代わりに/ home /を指し示すように設定することができます。 私はここにドッカー画像を用意しました:https://hub.docker.com/r/elnably/ghost-on-azureにssh機能を追加しました。ドッカーファイルとコードはhttps://github.com/ahmedelnably/ghost-on-azure/tree/master/1/alpineです。

ウェブアプリケーションがelnably/ghost-on-azure:最新のものを使用して設定して試してみてください。最新のものは、コンテナを起動するためのサイトを参照し、sshページ.scm.azurewebsites.netにアクセスしてください。 SSHについてこのリンクを確認してください:https://aka.ms/linux-ssh

+0

ありがとう、それは非常に便利です。私は実際にストックイメージを撮った後、scm経由でsshに接続し、そこからコンテナを変更したのと同じような戦略を使用しました。私は、ファイル共有をマウントし、そこにカスタムイメージからインストールして、どうやったらどうなるか見てみようと思います。 –

関連する問題