[英]How do I serve a Harp/nginx page from Docker?
我试图在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
后,如果查看sudo docker -ps -a
我可以看到该容器已创建,然后在1-2秒后退出。 我也不知道如何查看将在我的网站上提供哪些端口。
我知道Docker有几种方法可以访问父OS上的文件: https : //blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/
我希望harp-nginx
容器挂载目录,例如~/my_blog/
,并让Harp即时编译它们并使用nginx进行服务(在自定义端口上,因为已经使用了80)。 我想在父操作系统的~/my_blog/
编辑markdown源,并使更改在网站中自动生效。 但是我不知道如何处理上面链接的octohost容器。 我该如何完成我想要的?
当我运行sudo docker pull octohost / harp-nginx时,它会下载一堆文件,但这就是我遇到的问题。
这些文件应该是用于创建docker容器的docker映像。
sudo docker run -d -P octohost / harp-nginx似乎没有任何作用。 运行此命令后,如果查看sudo docker -ps -a,我可以看到该容器已创建,然后在1-2秒后退出。 我也不知道如何查看将在我的网站上提供哪些端口。
通常,您可以检查容器的日志以查看问题所在,可以运行docker logs <container_id/container_name>
然后我们回到您的问题,似乎octohost/harp-nginx
没有执行任何命令,因此您应该编写自己的Dockerfile
来使用环境。 从octohost/harp-nginx
的octohost/harp-nginx
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 .
来构建自己的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 /中编辑markdown源,并使更改在网站中自动生效。 但是我不知道如何处理上面链接的octohost容器。 我该如何完成我想要的?
我不熟悉harp
,因此这是我的理解和建议。
您应该在主机而不是容器中运行harp compile
,只需将已编译的静态内容挂载到nginx容器中,然后让nginx为其提供服务。 如果执行此操作,只需使用任何nginx
docker映像(例如dockerfile / nginx) ,然后将您的harp
输出安装到/var/www/html
。
似乎harp
还不支持实时重装,因此您需要一些额外的工具来实现它。 [我不确定这部分,只是用谷歌搜索]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.