如何从Docker提供Harp / nginx页面?

我试图在Docker容器中运行nginx和Harp来为我的博客服务。

我find了这个: https : //github.com/octohost/harp-nginx

当我运行sudo docker pull octohost/harp-nginx ,它会下载一堆文件,但这是我卡住的地方。

sudo docker run -d -P octohost/harp-nginx似乎没有做任何事情。 运行这个之后,如果我看一下sudo docker -ps -a我可以看到容器被创build,然后在1-2秒之后退出。 我也不知道如何看到我的网站将被送达什么端口。

我知道有多种方式让Docker访问父操作系统上的文件: https : //blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/

我想让harp-nginx容器挂载一个目录,例如~/my_blog/ ,并让Harp随时编译这些目录,并使用nginx(在自定义端口上,因为80已经在使用中)提供这些目录。 我想在父操作系统中编辑~/my_blog/的降价源,并使更改自动在网站中生效。 然而,我不知道如何处理上面链接的八容主机容器。 我怎样才能做到我想要的?

当我运行sudo docker pull octohost / harp-nginx时,它会下载一堆文件,但这是我卡住的地方。

这些文件应该是用来创builddocker容器的docker图像。

sudo docker运行-d -P octohost / harp-nginx似乎没有做任何事情。 运行这个之后,如果我看一下sudo docker -ps -a,我可以看到容器被创build,然后在1-2秒之后退出。 我也不知道如何看到我的网站将被送达什么端口。

通常情况下,你可以检查一个容器的日志,看看有什么问题,你可以运行docker logs <container_id/container_name>

然后我们回到你的问题,似乎octohost/harp-nginx不执行任何命令,所以你应该编写自己的Dockerfile来使用环境。 从octohost/harp-nginx的repo README ,你可以像这样写一个Dockerfile

 FROM octohost/harp-nginx WORKDIR /srv/www ADD . /srv/www/ RUN harp compile EXPOSE 80 CMD nginx 

那么你可以使用docker build -t my-harp-nginx .build立你自己的harp-nginx容器docker build -t my-harp-nginx . ,build立成功后,你可以通过使用docker run --name "harp-nginx" -d -p 8080:80 my-harp-nginx创build一个新容器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 /中的降价源,并使更改自动在网站中生效。 然而,我不知道如何处理上面链接的八容主机容器。 我怎样才能做到我想要的?

我不熟悉harp ,所以这里是我的理解和build议。

  • 你应该在主机上运行harp compile而不是容器,只需要把编译好的静态内容挂载到nginx容器中,然后让nginx来运行它。 如果你这样做,只要使用dockerfile / nginx等任何nginx docker镜像 ,然后将你的harp输出安装到/var/www/html

  • 似乎harp不支持实时重新加载,所以你需要一些额外的工具来实现它。 [我不确定这个部分,只是Googlesearch]

Interesting Posts