2017-09-25 4 views
2

저는 도커와 도커 작성자가있는 초보자이며 도움이 필요합니다.docker-compose.yml에서 docker 컨테이너에 패키지를 설치하십시오.

나는 docker-compose를 사용하여 PHP-NGINX-PostgresSQL 심포니 개발 환경을 만들고 있습니다.

는 여기있다 : 이제

web: 
    image: nginx:1.13.5 
    ports: 
     - "80:80" 
    volumes: 
     - ./html:/html 
     - ./site.conf:/etc/nginx/conf.d/default.conf 
    links: 
     - php 
php: 
    image: php:7-fpm 
    volumes: 
     - ./html:/html 
    links: 
     - postgres 
postgres: 
    image: postgres:9.6.5 
    ports: 
     - "5432:5432" 
    environment: 
     POSTGRES_PASSWORD: postgres 

, 난 내 PHP 용기에 php7.2 - 국제를 설치하고 싶습니다. 그래서 다음과 같이 실행하고 싶습니다.

$ sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php 
$ sudo apt-get update 
$ sudo apt-get install php7.2-intl 

도와 주시겠습니까? 나는 정말로 붙어 있고 Dockerfile 파일도 없다. 단지 docker-compose.yml 파일이다.

+3

PHP 이미지에 Dockerfile을 사용하고 간단히'build : .'' 대신'image'를 넣으십시오. –

답변

5

int 확장자를 가진 PHP 도커 컨테이너를 얻으려면 공식 PHP 이미지를 확장해야합니다. 이렇게하려면

docker-compose.yml에서 PHP 이미지를 Dockerfile 자신의 사용을 선언

services: 
    php: 
    # Remove this line 
    # image: php:7-fpm 

    # Add this one instead 
    build: './docker/php' 
    # ... 

을 그런 다음 docker/php 폴더에 다음 Dockerfile 파일을 추가 :

FROM php:7.1-fpm 

RUN apt-get update && apt-get install -y \ 
     libicu-dev \ 
    && docker-php-ext-install \ 
     intl \ 
    && docker-php-ext-enable \ 
     intl 

을 당신이 할 수있는 이제 docker-compose build을 실행하여 PHP 컨테이너를 Intl 확장명으로 빌드하십시오.

몇 가지 참고 사항은 :

내가 명시 적으로 내가 (여기 "7.1.x") 오히려 더 일반적인 "7.x의"이상 사용하는 PHP 버전을 알려 선호
  • 당신은 php:7-fpm로 정의.
  • PHP 공식 이미지에서 제공하는 docker-php-ext-installdocker-php-ext-enable 명령 유틸리티를 사용하는 것이 좋습니다 (PHP image documentation의 "PHP 확장 기능 설치 방법"섹션 참조).
+0

dockerfile을 docker-compose와 함께 사용하면 정말 도움이되었습니다. – TheMackou

관련 문제