Docker отправляет изображение из CoreOS в личный реестр контейнеров Google - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть частный репозиторий git для статического углового интерфейса, который использует gulp для компиляции угловых ресурсов, чтобы получить минимизированную статическую версию в выходном каталоге.

Теперь, чтобы протестировать и создать свой конвейер CI / CD для внешнего интерфейса в Kubernetes, я настроил кластер kubernetes и установил шлем, выполнил helm init для запуска стручков.

Теперь, когда я смотрю на этот график - https://github.com/bitnami/charts/tree/master/bitnami/nginx

У меня сейчас 2 вопроса -

1) Как мне создать свой собственный файл Docker с моими шагами сборки, поэтомуЯ нашел эту статью здесь - https://github.com/umputun/nginx-le, чтобы настроить NGinx с LE с помощью докера.

Итак, если я добавлю приведенный ниже код в приведенный выше файл docker, чтобы скопировать мои выходные файлы сборки gulp в веб-корень nginx, смогу ли я правильно использовать этот файл docker для использования его с приведенной выше диаграммой управления (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Регистрация изображений и использовать это с Kubernetes в моем GCE?

------ ЗАМЕЧАНИЯ ОБ ОБНОВЛЕНИИ ------

Я попытался выполнить вторую часть следующим образом и сейчас получаю сообщение об ошибке при настройке аутентификации докера с 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 еще не была сделана

Поэтому я попытался следовать из https://cloud.google.com/container-registry/docs/advanced-authentication & [Я не работаю напрямую на GCE, но в изолированной программной среде CoreOS VM, поэтому стандартные параметры входа в систему с докером не работали, как ожидалось].Таким образом, из всех вариантов, только успешных, этот был -

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

, но оба результата приводят к ошибке аутентификации.

...