如何从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]