Я пытаюсь создать Dockerfile, который определяет среду с php, node.js с express и socket.io, и mysql совместимость.
В настоящее время у меня есть это:
FROM php:7.2-cli
RUN apt-get update && apt-get install -y nodejs npm
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install
RUN npm install express
RUN npm install socket.io
EXPOSE 8080
CMD [ "node", "src/Server.js" ]
Проблема в том, что при вызове функции php, использующей mysqli, я получаю эту ошибку:
Fatal error: Uncaught Error: Class 'mysqli' not found in /usr/src/app/src/php/db_connect.php:21
Stack trace:
#0 /usr/src/app/src/php/websocketsAPI.php(11): include()
#1 {main}
thrown in /usr/src/app/src/php/db_connect.php on line 21
Я прочитал, что это связано с настройкой MySQL. MySQL не установлен в этом контейнере, поэтому я подумал, что это может быть причиной. Если я правильно помню, установка MySQL не является процессом, который может происходить без присмотра, поэтому я неохотно устанавливал MySQL с использованием обычной системы apt-get
. Я также читал, что mysqli
является php компонентом. Мне не нужно MySQL в этом контейнере, кроме, возможно, чтобы решить эту текущую ошибку. Каков наилучший способ решить эту проблему?