繁体   English   中英

如何从Docker服务Harp / nginx页面?

[英]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-nginxoctohost/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM