我想要自动构建一个Docker容器,显示使用Hugo框架创建的网站的公共文件。因此,我将以下Dockerfile添加到Hugo网站的根目录中:
FROM klakegg/hugo:0.104.3-onbuild AS hugo
FROM nginx
COPY --from=hugo /target /usr/share/nginx/html这个多阶段构建的思想是动态创建网站文件,并使用nginx容器显示结果。当我在我的Ubuntu20.04LinuxPC上本地创建容器并运行它时,一切正常工作,网站可以在localhost:8080上访问。
docker build -t hugo-local .
docker run -d -p 8080:80 hugo-local如果我使用Google构建容器,则构建过程将成功完成。这些文件也被复制到正确的目录(/usr/share/nginx/html)。
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欢迎页面:
docker run -d -p 8080:80 hugo-cloud

我做错了什么?有什么想法吗?反馈高度赞赏。
我尝试了各种基本的图像,不同的环境。
发布于 2022-10-30 21:22:38
我无法复制你的问题。
我使用了我自己的雨果网站:
git clone \
--recurse-submodules \
git@github.com:me/repo.git我可以运行我的网站:
hugo server -D和:
podman run \
--interactive --tty --rm \
--volume=${PWD}:/src \
--publish=1313:1313 \
docker.io/klakegg/hugo:0.104.3 \
server -D在您的问题中,我添加了Dockerfile和cloudbuild.yaml文件。
Dockerfile
FROM klakegg/hugo:0.104.3-onbuild AS hugo
FROM nginx
COPY --from=hugo /target /usr/share/nginx/html我建造并管理了这个网站:
podman build \
--tag=snippets:$(git rev-parse HEAD) \
--file=./Dockerfile \
${PWD}
podman run \
--interactive --tty --rm \
snippets:$(git rev-parse HEAD)cloudbuild.yaml
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。
建造它:
gcloud builds submit ${PWD} \
--config=cloudbuild.yaml \
--project=${PROJECT}获取最新的生成ID为TAG,并运行容器:
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}这也很管用。
https://stackoverflow.com/questions/74243843
复制相似问题