Облачный sql прокси не работает из docker контейнера - PullRequest
1 голос
/ 17 февраля 2020

Мое приложение работает в контейнере docker и развернуто с группами вычислений Google и включенным автоматическим вызовом. Проблема, с которой я сталкиваюсь, связана с подключением экземпляра mysql к автоматически масштабируемым экземплярам вычислений, но он не работает ожидаемым образом.

Dockerfile

FROM ubuntu:16.04
RUN apt-get update && apt-get install -y software-properties-common && \
...installation other extenstion
RUN curl -sS https://getcomposer.org/installer | \
    php -- --install-dir=/usr/bin/ --filename=composer
COPY . /var/www/html
CMD cd /var/www/html
RUN composer install
ADD nginx.conf/default /etc/nginx/sites-available/default
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy
RUN mkdir /cloudsql
RUN chmod 777 /cloudsql
RUN chmod 777 -R storage bootstrap/cache
EXPOSE 80
**CMD service php7.1-fpm start && nginx -g "daemon off;" &&  ./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306 -credential_file=file.json &**

Последняя строка ./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306 -credential_file=file.json & не выполняется, когда я запускаю свой контейнер.

Если я запускаю этот ./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306 -credential_file=file.json & внутри контейнера (переходя в контейнер с помощью команды docker), он работает, и когда я снова закрываю терминал, он перестает работать.

Даже я пытался бежать в фоновом режиме, но не повезло.

Кто-нибудь имеет представление об этом?

1 Ответ

1 голос
/ 18 февраля 2020

Исправлено

  1. Создать стартовый файл. sh и переместить все команды для запуска. sh
  2. После запуска sql прокси я поставил sleep 10 и запустите nginx и php

Теперь все работает как положено.

Dockerfile
FROM ubuntu:16.04
...other command
ADD start.sh /
RUN chmod +x /start.sh
EXPOSE 80
CMD ["/start.sh"]

и это начало. sh file

//start.sh
#!/bin/sh
./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306     -credential_file=<file>.json &
sleep 10
service php7.1-fpm start
nginx -g "daemon off;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...