0

ブログを提供するために、Docker コンテナーで nginx と Harp を実行しようとしています。

私はこれを見つけました: https://github.com/octohost/harp-nginx

を実行するsudo docker pull octohost/harp-nginxと、大量のファイルがダウンロードされますが、ここで行き詰まっています。

sudo docker run -d -P octohost/harp-nginx何もしないようです。これを実行した後sudo docker -ps -a、コンテナが作成され、1〜2秒後に終了することがわかります。また、自分の Web サイトが提供されるポートを確認する方法もわかりません。

Docker が親 OS 上のファイルにアクセスする方法がいくつかあることはわかっています: https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/

harp-nginxたとえば、コンテナーにディレクトリをマウントし、Harp~/my_blog/にこれらをオンザフライでコンパイルさせ、nginx で提供するようにします (80 は既に使用されているため、カスタム ポートで)。親OSからマークダウンソースを編集し~/my_blog/、変更をWebサイトで自動的に有効にしたい。ただし、上にリンクされている octohost コンテナーをどうするかわかりません。どうすればやりたいことを達成できますか?

4

1 に答える 1

1

sudo docker pull octohost/harp-nginx を実行すると、大量のファイルがダウンロードされますが、ここで立ち往生しています。

これらのファイルの束は、docker コンテナーの作成に使用される docker イメージである必要があります。

sudo docker run -d -P octohost/harp-nginx は何もしていないようです。これを実行した後、sudo docker -ps -a を見ると、コンテナが作成され、1 ~ 2 秒後に終了することがわかります。また、自分の Web サイトが提供されるポートを確認する方法もわかりません。

通常、コンテナのログをチェックして何が問題なのかを確認できます。docker logs <container_id/container_name>

次に、問題に戻ります。octohost/harp-nginxコマンドを実行しないようですDockerfile。そのため、環境を使用するには独自に作成する必要があります。octohost/harp-nginxのリポジトリからREADME、次のように書くことができますDockerfile:

FROM octohost/harp-nginx

WORKDIR /srv/www

ADD . /srv/www/
RUN harp compile

EXPOSE 80

CMD nginx

その後、 を使用して独自の harp-nginx コンテナーをdocker build -t my-harp-nginx .構築できます。ビルドが成功した後、 を使用して新しいコンテナーを作成できます。docker run --name "harp-nginx" -d -p 8080:80 my-harp-nginx

ここでは、ホストの 8080 ポートをコンテナーの 80 ポートにマップしているため、コンテナーのポートに次の場所からアクセスできることに注意してください。http://localhost:8080

harp-nginx コンテナーに ~/my_blog/ などのディレクトリをマウントし、Harp にこれらをオンザフライでコンパイルさせ、nginx で提供するようにします (80 は既に使用されているため、カスタム ポートで)。~/my_blog/ のマークダウン ソースを親 OS から編集し、変更を Web サイトに自動的に反映させたい。ただし、上にリンクされている octohost コンテナーをどうするかわかりません。どうすればやりたいことを達成できますか?

私はに慣れていないharpので、ここに私の理解と提案があります。

  • コンテナではなくホストで実行する必要がharp compileあります。コンパイルされた静的コンテンツを nginx コンテナにマウントし、nginx に提供させるだけです。これを行う場合は、dockerfile/nginxnginxなどの任意の docker イメージを使用してから、出力を にマウントします。harp/var/www/html

  • はまだライブリロードharpをサポートしていないようです。それを実現するには、追加のツールが必要です。[この部分についてはよくわかりません。ググっただけです]

于 2015-07-12T10:07:52.403 に答える