首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hugo:用Google构建静态站点

hugo:用Google构建静态站点
EN

Stack Overflow用户
提问于 2022-10-29 08:24:40
回答 1查看 82关注 0票数 0

我想要自动构建一个Docker容器,显示使用Hugo框架创建的网站的公共文件。因此,我将以下Dockerfile添加到Hugo网站的根目录中:

代码语言:javascript
复制
FROM klakegg/hugo:0.104.3-onbuild AS hugo

FROM nginx
COPY --from=hugo /target /usr/share/nginx/html

这个多阶段构建的思想是动态创建网站文件,并使用nginx容器显示结果。当我在我的Ubuntu20.04LinuxPC上本地创建容器并运行它时,一切正常工作,网站可以在localhost:8080上访问。

代码语言:javascript
复制
docker build -t hugo-local .
docker run -d -p 8080:80 hugo-local

如果我使用Google构建容器,则构建过程将成功完成。这些文件也被复制到正确的目录(/usr/share/nginx/html)。

代码语言:javascript
复制
steps:
# This step builds the container image.
- name: 'gcr.io/cloud-builders/docker'
  id: Build
  args:
  - 'build'
  - '-t'
  - 'eu.gcr.io/gcp-project/hugo-cloud:$BUILD_ID'
  - '.'

# This step pushes the image to Container Registry
# The PROJECT_ID and SHORT_SHA variables are automatically
# replaced by Cloud Build.
- name: 'gcr.io/cloud-builders/docker'
  id: Push
  args:
  - 'push'
  - 'eu.gcr.io/gcp-project/hugo-cloud'

但是,不显示网站,而是显示默认的nginx欢迎页面:

代码语言:javascript
复制
docker run -d -p 8080:80 hugo-cloud

我做错了什么?有什么想法吗?反馈高度赞赏。

我尝试了各种基本的图像,不同的环境。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-30 21:22:38

我无法复制你的问题。

我使用了我自己的雨果网站:

代码语言:javascript
复制
git clone \
--recurse-submodules \
git@github.com:me/repo.git

我可以运行我的网站:

代码语言:javascript
复制
hugo server -D

和:

代码语言:javascript
复制
podman run \
--interactive --tty --rm \
--volume=${PWD}:/src \
--publish=1313:1313 \
docker.io/klakegg/hugo:0.104.3 \
  server -D

在您的问题中,我添加了Dockerfilecloudbuild.yaml文件。

Dockerfile

代码语言:javascript
复制
FROM klakegg/hugo:0.104.3-onbuild AS hugo

FROM nginx
COPY --from=hugo /target /usr/share/nginx/html

我建造并管理了这个网站:

代码语言:javascript
复制
podman build \
--tag=snippets:$(git rev-parse HEAD) \
--file=./Dockerfile \
${PWD}

podman run \
--interactive --tty --rm \
snippets:$(git rev-parse HEAD)

cloudbuild.yaml

代码语言:javascript
复制
steps:
- name: gcr.io/cloud-builders/docker
  id: build
  args:
  - build
  - --tag=gcr.io/${PROJECT_ID}/hugo-cloud:${BUILD_ID}
  - '.'

#- name: gcr.io/cloud-builders/docker
#  id: push
#  args:
#  - push
#  - gcr.io/${PROJECT_ID}/hugo-cloud:${BUILD_ID}

images:
- gcr.io/${PROJECT_ID}/hugo-cloud:${BUILD_ID}

既可以实现push工作(您的方式) docker push,也可以使用默认的云构建方法来枚举images

建造它:

代码语言:javascript
复制
gcloud builds submit ${PWD} \
--config=cloudbuild.yaml \
--project=${PROJECT}

获取最新的生成ID为TAG,并运行容器:

代码语言:javascript
复制
TAG=$(\
  gcloud builds list \
  --limit=1 \
  --project=${PROJECT} \
  --format="value(id)")

podman run \
--interactive --tty --rm \
--publish=8080:80 \
gcr.io/${PROJECT}/hugo-cloud:${TAG}

这也很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74243843

复制
相关文章

相似问题

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