Я пытаюсь создать образ стека LAMP докера и столкнулся с несколькими проблемами с подключением к БД.Я могу нажать на статические страницы на локальном хосте после запуска контейнера, который говорит мне, что фактическое изображение в порядке, но я не могу понять, почему БД не подключается.Я использую AWS DB, и он отлично работает в моей локальной среде лампы.Имея проблемы с изображением contianer, хотя.
Dockerfile
# Build ui code
FROM node:8.11.4 AS npm-build
COPY code/ui /tmp/code/ui
WORKDIR /tmp/code/ui
RUN npm install bower
RUN npm install && npm run build
# Build api code
FROM sunfoxcz/php-build:5.6 AS php-build
COPY code/api /tmp/code/api
WORKDIR /tmp/code/api
RUN composer install && composer dump-autoload -o
# Build production container
FROM amazonlinux:1
# Update repo data
RUN yum makecache fast
# Install OS updates
RUN yum update -y \
&& yum-config-manager --enable epel
# Install Apache (2.4) and PHP (5.6)
RUN yum install -y httpd24 mod24_ssl php56 php56-mysqlnd php56-pgsql php-curl php56-mbstring php56-gd php56-devel php56-mcrypt php56-opcache
# Install needed packages
RUN yum install -y redis poppler-utils
# Install needed dev tools
RUN yum install -y gcc wget
# Install PHP Redis extension
RUN cd /tmp && \
wget -O phpredis-4.3.0.tar.gz https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz && \
tar xvfz phpredis-4.3.0.tar.gz && \
cd phpredis-4.3.0 && \
phpize && \
./configure && \
make && \
make install && \
rm -rf /tmp/phpredis-4.3.0*
# Install needed binaries
COPY bin/pdftotext /opt/ds/bin/pdftotext
RUN chmod +x /opt/ds/bin/pdftotext
# Finally add our code files to the production container
COPY --from=php-build /tmp/code/api /var/www/html
COPY --from=npm-build /tmp/code/ui/dist /var/www/html/ui
COPY environment /etc/environment
EXPOSE 80
EXPOSE 3306
ENTRYPOINT ["httpd","-DFOREGROUND"]
среда
export DS_ENVIRONMENT="local"
export DS_DB_HOST="my-remote-host"
export DS_DB_HOST_REPLICA=""
export DS_DB_HOST_REPLICA_TWO=""
export DS_DB_NAME="my_db_name"
export DS_DB_USER="db_user"
export DS_DB_PASS="xxxxxxx"
Когда я запускаю этот контейнер, я получаю следующую ошибку:
Неустранимая ошибка: Uncaughtисключение «PDOException» с сообщением «SQLSTATE [HY000] [2002] Нет такого файла или каталога» в /var/www/html/vendor/illuminate/database/Connectors/Connector.php:68 трассировка стека: # 0 / var / www/html/vendor/illuminate/database/Connectors/Connector.php(68): PDO -> конструкция __ («mysql: host = loca ...», «root», «root», Array) # 1 / var / www/html/vendor/illuminate/database/Connectors/Connector.php(45): Illuminate \ Database \ Connectors \ Connector-> createPdoConnection ('mysql: host = loca ...', 'root', 'root', Array)# 2 /var/www/html/vendor/illuminate/database/Connectors/MySqlConnector.php(24): Illuminate \ Database \ Connectors \ Connector-> createConnection ('mysql: host = loca ...', Array, Array)# 3 /var/www/html/vendor/illuminate/database/Connectors/ConnectionFactory.php(183): Подсветка \ Database \ Connectors \ MySqlConnector-> connect (Array) # 4 [внутренняя функция]: Подсветка \ База данных \ Соединители \ ConnectionFactory-> Подсветка \ База данных \ Коннекторы {закрытие} () # 5 /var/www/html/vendor/illuminate/database/Connection.php(883): call_user_func (Объект (C в / var)/www/html/vendor/illuminate/database/Connectors/Connector.php в строке 68
Я не могу определить, откуда это исходит.Очевидно, что это похоже на связь с БД isuees, но 1) я не понимаю, почему он использует строку подключения localhost, как видно на рисунке.Это по умолчанию?