首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Docker提供Harp/nginx页面?

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

Stack Overflow用户
提问于 2015-07-12 08:39:30
回答 1查看 124关注 0票数 0

我试图在一个码头容器中运行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秒后退出。我也不知道如何看我的网站将被服务的港口。

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

我希望harp-nginx容器挂载一个目录,例如~/my_blog/,并让Harp动态编译这些目录,并使用nginx (在自定义端口上,因为80已经在使用)服务它们。我希望从父操作系统编辑~/my_blog/中的标记源,并使更改在网站中自动生效。但是,我不知道如何处理上面链接的octohost容器。我怎样才能实现我想要的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-12 10:07:52

当我运行sudo docker拉出octohost/harp-nginx时,它会下载一堆文件,但这是我被困在这里的地方。

这些文件应该是码头映像,用于创建坞容器。

数独码头运行-d -P octohost/harp似乎什么也不做。运行这个之后,如果我查看sudo -ps -a,我可以看到容器被创建了,然后在1-2秒后退出。我也不知道如何看我的网站将被服务的港口。

通常,您可以检查容器的日志以查看问题所在,可以运行docker logs <container_id/container_name>

然后我们回到您的问题上,似乎octohost/harp-nginx没有执行任何命令,所以您应该编写自己的Dockerfile来使用环境。在octohost/harp-nginx的回购README中,您可以编写这样一个Dockerfile

代码语言:javascript
复制
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 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/中的标记源,并使更改在网站中自动生效。但是,我不知道如何处理上面链接的octohost容器。我怎样才能实现我想要的?

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

  • 您应该在主机中运行harp compile,而不是在容器中运行,只需将编译好的静态内容挂载到nginx容器中,并让nginx为其服务。如果这样做,只需使用任何nginx停靠映像(如dockerfile/nginx ),然后将harp输出挂载到/var/www/html
  • 似乎harp还不支持实时重新加载,所以您需要一些额外的工具来实现它。我不确定这个部分,只是在谷歌上搜索
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31365968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档