我正在使用Hugo
尝试在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
答案 0 :(得分:2)
我遇到了同样的问题,但是按照本教程http://ahmedalani.com/post/so-recursive-it-hurts/,说明要使用 hugo服务器命令中的参数 - bind 。
添加提到的param,ip 0.0.0.0 我们有 - bind = 0.0.0.0
它对我很有用,我认为这是每个容器采用 localhost 进行自我范围的自然行为,但是如果你与0.0.0.0绑定则需要一个可见范围到主要主机。
答案 1 :(得分:0)
删除Dockerfile中的EXPOSE 1313
。 Dockerfile reference.
我希望它有所帮助。
答案 2 :(得分:0)
这是因为Docker实际上是在VM中运行。您需要导航到docker-machine ip而不是localhost。
curl $(docker-machine ip):1313