1

我和雨果一起工作

尝试在 Docker 容器中运行以允许人们轻松管理内容。

我的首要任务是让 Hugo 运行起来,让人们能够在本地查看该站点。

这是我的 Dockerfile:

FROM alpine:3.3

RUN apk update && apk upgrade && \
    apk add --no-cache go bash git openssh && \
    mkdir -p /aws && \
    apk -Uuv add groff less python py-pip && \
    pip install awscli && \
    apk --purge -v del py-pip && \
    rm /var/cache/apk/* && \
    mkdir -p /go/src /go/bin && chmod -R 777 /go

ENV GOPATH /go
ENV PATH /go/bin:$PATH

RUN go get -v github.com/spf13/hugo

RUN git clone http://mygitrepo.com /app
WORKDIR /app

EXPOSE 1313

ENTRYPOINT ["hugo","server"]

我正在查看站点回购然后运行 ​​Hugo -hugo server

然后我通过以下方式运行这个容器:

docker run -d -p 1313:1313 --name app app

报告一切正常,但是当我尝试在本地浏览时,localhost:1313我什么也看不到。

有什么想法我哪里出错了吗?

更新

docker ps给我:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9e1f12849044        app                "hugo server"       16 minutes ago      Up 16 minutes       0.0.0.0:1313->1313/tcp   app

docker logs 9e1给我:

Started building sites ...
Built site for language en:
0 draft content
0 future content
0 expired content
25 pages created
0 non-page files copied
0 paginator pages created
0 tags created
0 categories created
total in 64 ms
Watching for changes in /ltec/{data,content,layouts,static,themes}
Serving pages from memory
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
4

3 回答 3

2

我遇到了同样的问题,但是按照本教程http://ahmedalani.com/post/so-recursive-it-hurts/,说要使用来自hugo 服务器命令的参数--bind 。

添加提到的参数,以及我们的ip 0.0.0.0 --bind=0.0.0.0

它对我有用,我认为这是每个容器的自然行为,它们将localhost用于自身范围,但是如果您使用 0.0.0.0 绑定,则对主主机具有可见范围。

于 2017-11-12T01:02:37.377 回答
0

这是因为 Docker 实际上是在虚拟机中运行的。您需要导航到 docker-machine ip 而不是 localhost。

curl $(docker-machine ip):1313

于 2016-09-21T13:47:05.227 回答
0

EXPOSE 1313在 Dockerfile 中删除。Dockerfile 参考。

于 2016-09-21T11:55:11.120 回答