php와 mysql로 워드프레스 컨테이너를 시작하도록 설정된 도커 파일, 대신 mariadb를 시작합니다.
따라서 Ubuntu를 실행하는 도커 서버가 있으며 이틀 전에는 로컬 환경(MacBook Pro 하드웨어 및 OSX에서 실행되는 도커)이 정상적으로 실행되었습니다.빌드 문제가 있어서 다시 빌드하려고 했지만, 지금은 빌드를 위해 지난 12시간을 보냈습니다.모든 결과에서 가장 가까운 것은 서버를 시작하는 것이지만 MySQL 대신 MariaDB로 시작한다는 것입니다.이로 인해 WordPress는 "데이터베이스에 연결할 수 없음" 오류를 뱉습니다.
이미지가 스풀업되면 로그에 다음과 같이 기록됩니다.
Step 6/10 : RUN find /var/lib/mysql -type f -exec touch {} \; && \
service mysql start && \
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{redacted}');" && \
mysql -u root -pmysql -e "DROP DATABASE if exists theTable; DROP DATABASE if exists secondTable; CREATE DATABASE theTable; CREATE DATABASE secondTable;" && \
mysql -u root -pmysql theTable < /code/devdb/theTable.sql && \
---> Running in e1205f2fa886
Starting MariaDB database server: mysqld.
문제는 몇 달 전에 발생한 php7.2로의 업그레이드에 있다고 생각합니다만, 도커 파일이 업데이트된 적은 없는 것 같습니다.저는 최신 공식 php7.2-fpm 이미지를 사용하려고 했지만, apache 명령어가 오류를 던지고 있었습니다.그래서 저는 php7.2-apache를 시도했지만, php는 "gd"가 설치되지 않았다는 오류를 던지고 있었습니다.하지만 그 다음에 저는 그것을 추가하려고 했습니다.
apt-get install php7.2-xxx
그리고 또한 사용하여 시도했습니다.
rm /etc/apt/preferences.d/no-debian-php && \
docker-php-ext-install {XXX}
그럼 적어도 서버를 시작할 때는
wordpress:php7.2-apache
그리고.
mobingi/ubuntu-apache2-php7:7.2
서버가 시작되지만 MariaDB 이미지가 시작됩니다!
또한 서버가 사용을 시작하도록 했습니다.
binhle410/php7.2-fpm
하지만 더 이상한 일이 일어났고, 모든 페이지는 php 코드만 표시했습니다.마치 브라우저가 각 페이지의 헤더 php 파일을 에코한 것처럼.
다음은 관련 Docker 파일입니다.
FROM wordpress:php7.2-apache
RUN usermod -u 1000 www-data && \
apt-get -y update && apt-get -y upgrade && \
apt-get -y install default-mysql-server git && \
a2enmod expires && a2enmod headers && a2enmod rewrite && \
sed -i -e 's/None/All/g' /etc/apache2/apache2.conf && \
mkdir -p /var/www/html && \
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer
RUN mkdir -p /code
COPY ./devdb /code/devdb
RUN find /var/lib/mysql -type f -exec touch {} \; && \
service mysql start && \
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{redacted}');" && \
mysql -u root -pmysql -e "DROP DATABASE if exists theTable; DROP DATABASE if exists secondTable; CREATE DATABASE theTable; CREATE DATABASE secondTable;" && \
mysql -u root -pmysql theTable < /code/devdb/theTable.sql && \
그리고 docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "80:80"
volumes:
- ./src:/var/www/html
- ./:/code
- /var/lib/mysql
- ./tests:/var/www/html/tests
- ./vendor:/var/www/html/vendor
environment:
MYSQL_ROOT_PASSWORD: {redacted}
MYSQL_DATABASE: theTable
DOCKER_DEBUG: 1
제가 얻은 결과는 docker-compose up --build를 실행하면 서버를 스풀링하지만, mysql db 대신 mariadb를 시작하여 wordpress가 연결할 수 없다는 것입니다.도커 이미지는 mariadb 이미지가 아닌 내가 가지고 있는 sql 파일을 사용하여 mysql 서버를 시작해야 합니다.
콘솔 출력은 다음과 같습니다.
Step 6/10 : RUN find /var/lib/mysql -type f -exec touch {} \; && \
service mysql start && \
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{redacted}');" && \
mysql -u root -pmysql -e "DROP DATABASE if exists theTable; DROP DATABASE if exists secondTable; CREATE DATABASE theTable; CREATE DATABASE secondTable;" && \
mysql -u root -pmysql theTable < /code/devdb/theTable.sql && \
---> Running in e1205f2fa886
Starting MariaDB database server: mysqld.
알아냈어, 얘들아.
FROM mobingi/ubuntu-apache2-php7:7.2
# disable interactive functions
ARG DEBIAN_FRONTEND=noninteractive
RUN usermod -u 1000 www-data && \
apt-get -y update && apt-get -y upgrade && \
apt-get -y install curl zip unzip php7.2-zip mysql-server git && \
a2enmod expires && a2enmod headers && a2enmod rewrite && \
sed -i -e 's/None/All/g' /etc/apache2/apache2.conf && \
mkdir -p /var/www/html && \
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer
RUN mkdir -p /code
COPY ./devdb /code/devdb
RUN find /var/lib/mysql -type f -exec touch {} \; && \
service mysql start && \
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD({redacted});" && \
mysql -u root -pmysql -e "DROP DATABASE if exists theTable; DROP DATABASE if exists secondTable; CREATE DATABASE theTable; CREATE DATABASE secondTable;" && \
mysql -u root -pmysql theTable < /code/devdb/theTable.sql && \
mysql -u root -pmysql secondTable < /code/devdb/secondTable.sql
...
일했다
언급URL : https://stackoverflow.com/questions/57297548/dockerfile-set-to-start-wordpress-container-with-php-and-mysql-starts-mariadb-i
'programing' 카테고리의 다른 글
Node.js를 사용하여 텍스트 파일을 읽으시겠습니까? (0) | 2023.08.25 |
---|---|
텍스트 영역 HTML 태그의 한 줄씩 읽는 방법 (0) | 2023.08.25 |
PowerShell '문자열'에 하나의 따옴표를 사용할 수 있습니까? (0) | 2023.08.25 |
여러 Excel 인스턴스를 시작했는데, 이 모든 인스턴스에 대한 애플리케이션 개체를 어떻게 얻을 수 있습니까? (0) | 2023.08.25 |
PHP-MySQL-MySQL 정수 필드를 안전하게 증가시키는 방법? (0) | 2023.08.25 |