Docker PHP7 사용

3254 단어 PHPDocker
Docker 컨테이너로 PHP7의 실행 환경을 구성합니다.
어떤 이는 PHP5의 프로젝트를 PHP7로 옮겨야 한다고 한다.
Docker를 사용하여 작업 환경을 준비하기로 결정했습니다.

PHP7+apach


Docker hub은 공식적인 인상이 있기 때문에 아무것도 원하지 않는다
index.php
<?php
phpinfo();
?>
$ docker run -p 8001:80 -d --name my-apache-php-app -v $PWD:/var/www/html php:7.0.2-apache
끝.
호스트http://localhost:8001/index.php
생각지도 못했어...
Forbidden

You don't have permission to access /index.php on this server.
-v로 마운트된 디렉터리의perission을 찾습니다.
$ docker exec -it 0529f214f6bd /bin/bash
->ここからコンテナ内
# ls -la /var/www
total 4
drwxr-xr-x.  3 root root   17 Jan  7 18:05 .
drwxr-xr-x. 12 root root 4096 Jan  7 23:17 ..
drwxrwxr-x.  2 1000 1000   39 Jan 17 18:29 html
-v로 마운트할 때
uid=1000, gid=1000, 775
그렇습니다.
그 다음에 대응하는 정책은 호스트의 SElinux를disable로 설정하거나 용기가 시작될 때 추가--privileged=true하는 것입니다.
호스트 설정을 변경하고 싶지 않으므로 부팅 옵션을 추가합니다.
docker run -p 8001:80 -d --privileged=true --name my-apache-php-app -v $PWD:/var/www/html php:7.0.2-apache
다시 한 번 방문하겠습니다.

Extension 추가


OFFICAL의 컨테이너 이미지에 Extension을 추가하는 방법은 준비되어 있습니다.
방금 런에서 직접 실행했습니다. Extension을 추가하기 위해 Docker file을 만듭니다.
mbstring을 설치해 보세요.
Dockerfile
FROM php:7.0.2-apache
RUN apt-get update
RUN docker-php-ext-install mbstring
위에서 설명한 대로 Docker file을 작성하고 구성합니다.
$docker build -t asia.gcr.io/my_project_id/php7:0.1 .
[vagrant@host01 php7]$ docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
asia.gcr.io/my_project_id/php7     0.1                 7c1d36229408        41 seconds ago      536.1 MB
php                             7.0.2-apache        2f16964f48ba        2 weeks ago         521 MB
gcr.io/my_project_id/centos7base   latest              c8a648134623        4 weeks ago         196.6 MB

$ docker run -p 8001:80 -d --privileged=true --name php7 -v $PWD:/var/www/html asia.gcr.io/my_project_id/php7:0.1
여기. 에 설정된 Google Container Registry 에 저장하기 위해 태그를 asia.gcr.io/my_project_id/php7:0.1 로 설정합니다.
괜찮아,mbstring.

Container Registry에 PUSH가 있습니다.

$ gcloud docker push asia.gcr.io/my_project_id/php7:0.1
지난번에는 gcr였다.나는 미국에서 존이 PUSH를 했고 이번에는 아시아 지역에서 PUSH를 해 보았다.
Developer Constore는 바로 이런 느낌입니다.

장소는 US 및 ASIA입니다.
NGINX를 사용하면 사소한 설정을 하려면 더 노력하지 않지만 간단하게 활용할 수 있다.

좋은 웹페이지 즐겨찾기