Я хочу настроить Gitlab CI для автоматического тестирования и развертывания моего проекта Node.js в движке Google Cloud Kubernetes. Я также хочу иметь возможность подключиться к моему экземпляру Google Cloud SQL.
В настоящее время я работаю с Gitlab Auto Devops. Я подключил свой кластер kubernetes в gitlab и установил Helm, Ingress, Cert-Manager и Prometheus.
После небольшого поиска я узнал, что мне нужно развернуть Cloud SQL Proxy, чтобы иметь доступ кsql экземпляр с моего Node.js-сервера.
Мой конфигурационный файл Dockerfile:
FROM node:10.16.3
# Intsall Google Cloud SQL Proxy
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy
RUN ./cloud_sql_proxy -instances=myProject:zone:name=tcp:3306
# Node
WORKDIR /usr/src/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY package.json /usr/src/app/
RUN npm config set "@fortawesome:registry" https://npm.fontawesome.com/
RUN npm config set "//npm.fontawesome.com/:_authToken" KEY
RUN npm install
COPY . /usr/src/app
EXPOSE 5000
CMD [ "npm", "start" ]
Но это не удается при сборке:
2019/10/13 11:48:38 current FDs rlimit set to 1048576, wanted limit is 8500. Nothing to do here.
2019/10/13 11:48:40 error checking scopes: *url.Error Get http://x.x.x.x/computeMetadata/v1/instance/service-accounts/default/scopes: dial tcp x.x.x.x:80: i/o timeout | Get http://x.x.x.x/computeMetadata/v1/instance/service-accounts/default/scopes: dial tcp x.x.x.x:80: i/o timeout
The command '/bin/sh -c ./cloud_sql_proxy -instances=myProject:zone:name=tcp:3306' returned a non-zero code: 1
Почему возникает эта ошибка?
Нужно ли мне писать свою собственную конфигурацию .gitlab-ci.yml для обработки такого распространенного сценария?
Если да, то есть ли шаблоны для этого варианта использования, потому что все, что я нахожу, предназначено только для ручногоРазвертывание приложений с докером в GKE с SQL?