docker-compose로 WordPress 환경 구축
전제
docker 명령, docker-compose, docker-sync의 기본은 이해하는 것으로
docker-compose로 단일 컨테이너 내에 virtualhost로 여러 워드 프레스를 설치하는 환경
바삭바삭하게 준비할 수 있도록 한다.
환경:
· Macbook air El Capitan 10.11.6
· docker for mac
· docker-sync
docker의 개인 이미지 (수시로 바꿀 것입니다)
사용할 docker image
궁극적으로 aws에 배포를 생각하고 있기 때문에 docker hub에도 추가 된 amazonlinux 공식 이미지를 사용합니다.
데이터베이스는 임시 RDS라는 것으로 mysql의 공식 이미지를 사용한다.
amazonlinux 공식
htps : // 후 b. 도 c r. 코 m/_/아마쵸즈나 x/
mysql 공식
htps : // 후 b. 도 c r. 이 m/_/mysql/
디렉토리 구성
amznlinux의 Dockerfile
APP 서버 구축용의 Dockerfile입니다.
DockerfileFROM amazonlinux:latest
RUN yum clean all && yum -y update
RUN yum clean all
### Apache
RUN yum install -y httpd
RUN chkconfig httpd on
### MySQL Server
RUN yum install -y mysql mysql-server mysql-client
### PHP
RUN yum install -y php php-mysql php-pear php-cli php-mbstring php-mcrypt php-pdo php-xml
RUN pear install Crypt_Blowfish
RUN pear install -a Mail
# Edit php setting file
COPY php/php.ini /etc/php.ini
EXPOSE 80
CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
해설은 할애하므로 RUN이라든지 CMD라든지 EXPOSE라는 따위 분은 하기 URL에서 확인해 주세요.
htp // // cs. 도 c r. jp/엔기네/레후에렌세/부이 l로 r. HTML
선인에게 감사!
mysql의 Dockerfile
공식 이미지를 거의 그대로 사용하고 있기 때문에 특히 바뀌지 않았습니다.
정말로 공식 부르는 것만
DockerfileFROM mysql:5.6.34
각종 설정 파일
마운트하거나 복사하는 php.ini, my.cnf, httpd.conf에 대해 필요한 경우 덮어 씁니다.
github에는 더미가 있습니다. (움직이지만 적당하므로 잘 읽으십시오)
docker-compose.yml
이쪽은 docker-compose 커멘드를 사용했을 때 읽히는 파일입니다만 Dockerfile이 각 컨테이너 마다 꽉 써 가는 느낌으로 docker-compose는 Dockerfile내에서 EXPOSE등의 설정을 정리해 실시할 수 있거나, 컨테이너끼리의 종속성을 지정합니다.
docker-compose.ymlversion: '2'
services:
amznlinux:
depends_on:
- mysql
build: amznlinux
links:
- mysql
extra_hosts:
- "localpage1.jp:127.0.0.1"
- "localpage2:127.0.0.1"
ports:
- "80:80"
volumes:
- ./amznlinux/httpd:/etc/httpd/conf/
mysql:
build: mysql
ports:
- "3306:3306"
restart: always
volumes:
- ./mysql/data_volume:/var/lib/mysql:rw
- ./sharedata_mysql:/share_data:rw
# - ./mysql/my:/etc/mysql/conf.d
environment:
MYSQL_DATABASE: databasename
MYSQL_ROOT_PASSWORD: password
예를 들어 설명은 생략하기 때문에 모르는 것은 참조를 확인해 주세요
htp // // cs. 도 c r. jp/코m포세/코m포세후우. HTML
그러고 보니 yml은 만지지 않았지만 반각 공간 2 개로 각 요소를 판별하고 있습니다.
sublime으로 개행하면 자동으로 tab 넣어 주었으므로 처음 build시 등에 에러를 상당히 토해 주었습니다.
docker-compose-dev.yml
이 파일은 docker-sync를 수행할 때 로드되어 docker-compose.yml 설정을 덮어씁니다.
docker-compose-dev.ymlversion: '2'
volumes:
www:
external: true
services:
amznlinux:
volumes:
- www:/var/www
여기와 아래의 docker-sync.yml에 관해서는 이쪽을 참고로 했습니다.
ぇぇぇぺぺrs. 는 bぉ. jp/엔트리/2016/11/02/122633
docker-sync.yml
docker-sync는 docker for mac을 사용하여 환경을 구축하는 경우 브라우저 액세스가 매우
느려지는 증상이 있기 때문에 그것을 피하기 위해 사용합니다.
자세한 것은 전항의 URL보다 확인해 주세요
docker-sync.yml
options:
# default: docker-compose.yml if you like, you can set a custom location (path) of your compose file like ~/app/compose.yml
compose-file-path: 'docker-compose.yml'
# optional, default: docker-compose-dev.yml if you like, you can set a custom location (path) of your compose file. Do not set it, if you do not want to use it at all
# if its there, it gets used, if you name it explicitly, it HAS to exist
compose-dev-file-path: 'docker-compose-dev.yml'
syncs:
www:
src: './amznlinux/www'
dest: '/var/www'
sync_strategy: 'rsync'
sync_host_port: 10871
sync_excludes: ['.DS_Store',]
docker sync에 관해서는 docker와 별도로 설치가 필요하므로 주의해 주세요.
위의 소스에 관해서는 git hub에 Wordpress를 저장하고있는 www 디렉토리를 비우고 그 중 올리기 때문에
관심이 있다면 놀아보세요.
끝까지 낭문에 사귀신 분들은 감사합니다.
그건 그렇고,이 기사는 이전 기사의 굽기입니다.
Reference
이 문제에 관하여(docker-compose로 WordPress 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sirogarasu/items/7e166e9e8cbba9b17aaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FROM amazonlinux:latest
RUN yum clean all && yum -y update
RUN yum clean all
### Apache
RUN yum install -y httpd
RUN chkconfig httpd on
### MySQL Server
RUN yum install -y mysql mysql-server mysql-client
### PHP
RUN yum install -y php php-mysql php-pear php-cli php-mbstring php-mcrypt php-pdo php-xml
RUN pear install Crypt_Blowfish
RUN pear install -a Mail
# Edit php setting file
COPY php/php.ini /etc/php.ini
EXPOSE 80
CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
FROM mysql:5.6.34
version: '2'
services:
amznlinux:
depends_on:
- mysql
build: amznlinux
links:
- mysql
extra_hosts:
- "localpage1.jp:127.0.0.1"
- "localpage2:127.0.0.1"
ports:
- "80:80"
volumes:
- ./amznlinux/httpd:/etc/httpd/conf/
mysql:
build: mysql
ports:
- "3306:3306"
restart: always
volumes:
- ./mysql/data_volume:/var/lib/mysql:rw
- ./sharedata_mysql:/share_data:rw
# - ./mysql/my:/etc/mysql/conf.d
environment:
MYSQL_DATABASE: databasename
MYSQL_ROOT_PASSWORD: password
version: '2'
volumes:
www:
external: true
services:
amznlinux:
volumes:
- www:/var/www
options:
# default: docker-compose.yml if you like, you can set a custom location (path) of your compose file like ~/app/compose.yml
compose-file-path: 'docker-compose.yml'
# optional, default: docker-compose-dev.yml if you like, you can set a custom location (path) of your compose file. Do not set it, if you do not want to use it at all
# if its there, it gets used, if you name it explicitly, it HAS to exist
compose-dev-file-path: 'docker-compose-dev.yml'
syncs:
www:
src: './amznlinux/www'
dest: '/var/www'
sync_strategy: 'rsync'
sync_host_port: 10871
sync_excludes: ['.DS_Store',]
Reference
이 문제에 관하여(docker-compose로 WordPress 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sirogarasu/items/7e166e9e8cbba9b17aaa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)