YYPHP#6 이벤트 리포트 「clean-code-php, Concrete5를 Kusanagi의 Docker 컨테이너로 이동한다」
이것은 2017년 9월 13일에 개최한 PHPer 이벤트YYPHP#6의 이벤트 리포트입니다.
YYPHP 는 한마디로 "PHPer의 부실"입니다. PHP에 대해서, 잡담하고, 느긋하게, 와와이와 이야기하는 모임입니다. 매회 주제를 결정하지 않고 잡담을 출발점에 여러가지 일을 돌발적으로 합니다. 모인 사람에게 코드 리딩을 하는 경우도 있고, 함께 개발 툴을 만져 보거나, 프레임워크에 대한 정보 교환을 하는 경우도 있습니다. 개최는 매주 수요일 19:00에 다카다노바바에서.
이번에는 5명이 참가해 주었습니다! 참가해 주신 여러분 감사합니다. 부디 다음 번에도 오세요~!
그럼 YYPHP에서 화제가 된 것을 드러내고 싶습니다.
clean-code-php
PHP: Clean Code (clean-code-php) 밀감약 - Qiita을 조금 바라 보았습니다.
Concrete5+kusanagi Docker 환경 만들기
Concrete5+kusanagi의 Docker 환경을 만드는 데 도전했습니다.
Kusanagi란?
Docker 환경을 만드는 방법
primestrategy/kusanagi-nginx - Docker Hub에 있는 docker-compose의 YAML을 그대로 사용한다.
mkdir kusanagi-concrete5
cd kusanagi-concrete5
touch docker-compose.yml
docker-compose.yml에 다음을 적는다.
docker-compose.yml
version: '2'
services:
kusanagi-data:
container_name: kusanagi-data
image: busybox
restart: always
stdin_open: true
tty: true
volumes:
- /var/lib/mysql
- /etc/nginx/conf.d
- /etc/httpd/conf.d
- /etc/kusanagi.d
- /home/kusanagi
command: /bin/sh
kusanagi-nginx:
container_name: kusanagi-nginx
image: primestrategy/kusanagi-nginx:1.10.0-1
environment:
PROFILE: kusanagi
FQDN: kusanagi.example.jp
WPLANG: ja
BCACHE: "off"
FCACHE: "off"
volumes_from:
- kusanagi-data
links:
- kusanagi-php7:php
- kusanagi-mariadb:mysql
ports:
- "80:80"
- "443:443"
kusanagi-mariadb:
container_name: kusanagi-mariadb
image: mariadb:10.0.24
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: wordpress
volumes_from:
- kusanagi-data
kusanagi-php7:
container_name: kusanagi-php7
image: primestrategy/kusanagi-php7:7.0.6-1
links:
- kusanagi-mariadb:mysql
volumes_from:
- kusanagi-data
docker-compose up -d
이 상태에서 브라우저http://localhost를 엽니다. 아래에 설정에서 WordPress는 달릴 수 있다.
시간 초과 오류가 발생하면,
ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
다음과 같이 타임아웃을 설정한다.
COMPOSE_HTTP_TIMEOUT=240 docker-compose up
kusanagi-nginx 컨테이너의
/home/kusanagi/kusanagi/DocumentRoot
가 문서 루트이므로, 여기에 Concrete5를 배치하면 된다.다음 명령으로 nginx 컨테이너에 들어갑니다.
docker-compose exec kusanagi-nginx bash
컨테이너에서 다음 명령을 실행하여 WordPress를 지우고 Concrete5를 다운로드하고 배치합니다.
rm -rf /home/kusanagi/kusanagi/DocumentRoot &&
yum install -y unzip wget &&
wget https://www.concrete5.org/download_file/-/view/96959/ -O concrete5-8.2.1.zip &&
unzip concrete5-8.2.1.zip &&
mv concrete5-8.2.1 /home/kusanagi/kusanagi/DocumentRoot
cd /home/kusanagi/kusanagi/DocumentRoot
chmod 777 /home/kusanagi/kusanagi/DocumentRoot/application/{files,config}
chmod 777 /home/kusanagi/kusanagi/DocumentRoot/packages
2017-09-13 현재, primastrategy/kusanagi-php7:7.0.16-1이 최신으로 이것이 아니면 pdo_mysql이 없는 것과, GD의 여러가지 들어가지 않기 때문에 Dockerfile을 만들어 빌드한다.
Dockefile
FROM primestrategy/kusanagi-php7:7.0.16-1
RUN apk add \
--no-cache \
freetype \
libpng \
libjpeg-turbo \
freetype-dev \
libpng-dev \
libjpeg-turbo-dev\
&& docker-php-ext-configure gd \
--with-gd \
--with-freetype-dir=/usr/include/ \
--with-png-dir=/usr/include/ \
--with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd
kusanagi-php7:
container_name: kusanagi-php7
build: . #ここ
links:
- kusanagi-mariadb:mysql
volumes_from:
- kusanagi-data
kusanagi-php7을 다시 빌드하고,
docker-compose build
컨테이너를 다시 시작합니다.
docker-compose up -d
이 상태에서 브라우저http://localhost를 열고 Concrete5의 인스톨러 화면이 표시되면 성공.
편리한 기술
YYPHP로 화제가 된 편리 테크. PHP와는 관계없는 것.
편리한 기술: 쉘의 편리한 키 바인딩
편리한 기술: iTerm2에서 Command+/로 초점을 표시할 수 있습니다.
프로젝터로 iTerm2를 낼 때 어디에 커서가 있는지 강조할 때 편리합니다.
프로젝터로 보면 이런 느낌.
YYPHP는 매주 하고 있습니다.
PHP에 대해 이야기하고 싶다면 YYPHP 이벤트 정보을 확인하십시오.
이상, YYPHP#6의 리포트였습니다. 다음 번에도 와이와이 해 가고 싶습니다! 그럼 또 다음주!
Reference
이 문제에 관하여(YYPHP#6 이벤트 리포트 「clean-code-php, Concrete5를 Kusanagi의 Docker 컨테이너로 이동한다」), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suin/items/f8d00e869bacf1a65bb4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)