У меня есть приложение 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
Отправка переменных ENV из приложения Docker-Compose в Codeigniter ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1738927643
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?
Спасибо!
Подробнее здесь: [url]https://stackoverflow.com/questions/75694677/sending-env-variables-from-docker-compose-to-codeigniter-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия