Senden von Env-Variablen von Docker-Compose an die Codesigniter-AppPhp

PHP-Programmierer chatten hier
Guest
 Senden von Env-Variablen von Docker-Compose an die Codesigniter-App

Post by Guest »

Ich habe eine Codesigniter 4 -Anwendung, die lokal gut funktioniert, aber der Server, auf dem er gehostet werden sollte Die Idee ist es, einen Container zu erstellen, der eine Verbindung zur Produktionsdatenbank herstellt, aber ich habe Probleme, die Umgebungsvariablen von Docker zum Codesigniter zu übergeben.
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>
Ich habe auch Folgendes ausprobiert: < /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>
Ich habe versucht, die Umgebungsvariablen im Bereich Umgebungsabschnitt des Webdienstes festzulegen, aber Codesigniter verarbeitet sie nicht. < /p>
Ich erhalte die folgenden Fehler: < /p>
CodeIgniter\Database\Exceptions\DatabaseException #8

Unable to connect to the database.
< /code>
Wenn ich die $ _server envs überprüfe, kann ich die Standardeinstellung aus der Env -Datei sehen, aber nicht die von Docker < /p>
Wissen Sie, wie Sie wie Ich kann die Umgebungsvariablen von Docker Compose an Codesigniter übergeben?
Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post