Отправка переменных ENV из приложения Docker-Compose в CodeigniterPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отправка переменных ENV из приложения Docker-Compose в Codeigniter

Сообщение Anonymous »

У меня есть приложение Codeigniter 4, которое работает хорошо локально, но сервер, на котором он должен быть размещен, имеет старую версию PHP и MariaDB (5.6, 10.1.41). < /p>
my Идея состоит в том, чтобы создать контейнер, который подключается к производственной базе данных, но у меня возникают проблемы с передачей переменных среды от Docker к Codeigniter.
Пока что у меня есть следующее:
docker-compose.yml:
version: '3'
services:
web:
container_name: test
build:
context: ./
volumes:
- ./:/var/www/html
environment:
CI_ENVIRONMENT: development
mariadb:
image: "mariadb:10.1.41"
environment:
MYSQL_USER: "root"
MYSQL_PASSWORD: ""
MYSQL_ROOT_PASSWORD: ""
MYSQL_DATABASE: ""
LC_ALL: "en_US.UTF-8"
LANG: "en_US.UTF-8"
LANGUAGE: "en_US.UTF-8"
network_mode: host
volumes:
- /var/lib/ico/mariadb:/var/lib/mysql
command: ["mysqld", "--log-bin", "--max-allowed-packet=500M"]
restart: always
< /code>
Я также попробовал следующее: < /p>
version: '3'
services:
web:
container_name: test
build:
context: ./
ports:
- "80:80"
volumes:
- ./:/var/www/html/
environment:
CI_ENVIRONMENT: development
DATABASE_HOSTNAME: host.docker.internal
DATABASE_USERNAME: root
DATABASE_PASSWORD: ''
DATABASE_NAME: test
< /code>
dockerfile: < /p>
FROM php:7.4-apache
ARG MYSQL_USER
ARG MYSQL_PASSWORD
ARG MYSQL_ROOT_PASSWORD
ARG MYSQL_DATABASE

ENV MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD MYSQL_DATABASE=$MYSQL_DATABASE MYSQL_PASSWORD=$MYSQL_PASSWORD MYSQL_USER=$MYSQL_USER

RUN apt-get update && \
apt-get install -y && \
apt-get install -y curl && \
apt-get install -y build-essential libssl-dev zlib1g-dev libpng-dev libjpeg-dev libfreetype6-dev && \
apt-get install -y libicu-dev

RUN docker-php-ext-install intl mysqli

COPY sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf
COPY . /var/www/html/

RUN apt-get update
RUN a2enmod rewrite
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN chown 777 -R /var/www/html/ \
&& chown 777 -R /var/www/html/public \
&& chown 777 -R /var/www/html/writable

RUN service apache2 restart
< /code>
Я попытался установить переменные среды в разделе среды веб -службы, но Codeigniter их не обрабатывает. < /p>
Я получаю следующее Ошибка: < /p>
CodeIgniter\Database\Exceptions\DatabaseException #8

Unable to connect to the database.
< /code>
Если я проверю Envs $ _Server, я вижу по умолчанию из файла env, но не из Docker < /p>
Вы знаете, как Я могу передать переменные среды от Docker Compose в codeigniter?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/756 ... gniter-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»