docker将图像从CoreOS推送到私有谷歌容器注册表

时间:2018-04-26 05:32:52

标签: docker kubernetes google-compute-engine coreos google-container-registry

我有一个静态角度前端的私有git repo,它使用gulp编译角度资源以获得输出目录中的缩小静态版本。

现在,测试&在Kubernetes中为前端创建我的CI / CD管道, 我已经设置了一个kubernetes集群&安装掌舵, 为了让分蘖豆荚运行,我做了helm init

现在,当我看这张图表时 - https://github.com/bitnami/charts/tree/master/bitnami/nginx

我现在有两个问题 -

1)如何使用构建步骤创建自己的dockerfile,所以我在这里找到了这篇文章 - https://github.com/umputun/nginx-le 使用docker配置带有LE的NGinx。

所以,如果我在上面的dockerfile中添加以下代码来将我的gulp构建输出文件复制到nginx web根目录,我是否能够正确使用这个dockerfile将其与上面的helm图表(https://github.com/bitnami/charts/tree/master/bitnami/nginx)一起使用

没有任何其他额外的变化吗?

Dockerfile更新 -

FROM node:latest as builder

RUN mkdir -p /usr/build
WORKDIR /usr/build
COPY package.json .
#COPY package-lock.json .
COPY bower.json .
COPY .bowerrc .
RUN npm install --quite
RUN npm install -g gulp bower --quite
RUN bower install --allow-root
RUN mkdir /usr/build/app
RUN cp -R /usr/build/node_modules /usr/build/app
RUN cp -R /usr/build/bower_components /usr/build/app
RUN cp -R /usr/build/*.json /usr/build/app/
RUN cp /usr/build/.bowerrc /usr/build/app/
COPY src /usr/build/app
RUN mkdir /usr/build/app/gulp
ADD gulp/* /usr/build/app/gulp/
ADD gulpfile.js /usr/build/app

WORKDIR /usr/build/app

RUN ls -al .
RUN rm -rf /usr/build/app/dist
RUN mkdir /usr/build/app/dist
RUN gulp build:dev
RUN ls -al /usr/build/app

FROM nginx:stable-alpine

ADD conf/nginx.conf /etc/nginx/nginx.conf
ADD conf/service.conf /etc/nginx/conf.d/service.conf

RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /usr/build/app/dist /usr/share/nginx/html

ADD script/entrypoint.sh /entrypoint.sh
ADD script/le.sh /le.sh

RUN \
 rm /etc/nginx/conf.d/default.conf && \
 chmod +x /entrypoint.sh && \
 chmod +x /le.sh && \
 apk add  --update certbot tzdata openssl && \
 rm -rf /var/cache/apk/*

CMD ["/entrypoint.sh"]

------更新说明------

使用这些dockerfile我已经设法完成/回答了我的问题1, 如果有人在将来需要这个参考

2)如何将此泊坞窗图像存储在Google Image Registry&在我的GCE中使用Kubernetes?

------更新说明------

我试图尝试第二部分 以下方式&配置docker时出现错误 使用GCP CoreOS进行身份验证

  • 所以在google的帮助下我能够开发上面的Dockerfile。
  • 我使用 -
  • 构建了图像文件泊坞窗
  • docker build -t nginxle
  • 接下来我尝试使用 -
  • 标记此图片
  • docker tag nginxle-urtutors gcr.io/vivid-art-202212/nginxle-urtutors:0.0.
  • 标记后将其推送到GCR我试过 -
  • docker push gcr.io/vivid-art-202212/nginxle-urtutors:0.0.1

这引发了一个错误,即使用google云的docker身份验证尚未完成

所以我试图跟随https://cloud.google.com/container-registry/docs/advanced-authentication& [我不是直接在GCE上运行,而是在CoreOS VM沙箱上运行,因此使用docker的标准登录选项无法按预期运行]。所以,在所有选项中只有成功才是这个 -

gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://gcr.io

它显示了ssh控制台中的登录成功。

但是当我再试一次 -

docker push gcr.io/vivid-art-202212/nginxle-urtutors:0.0.1

gcloud docker -- push gcr.io/vivid-art-202212/nginxle-urtutors:0.0.1

但两者都导致身份验证失败。

0 个答案:

没有答案