2017-12-20 12 views
1

안녕하세요. Docker를 처음 사용하고 있습니다.Docker에서 패키지를 설치하는 방법은 무엇입니까?

sudo apt-get update && sudo apt-get install yarn 

내가 알아낼 수 :

version: "3" 

services: 
    lmm-website: 
    image: lmm/lamp:php${PHP_VERSION:-71} 
    container_name: ${CONTAINER_NAME:-lmm-website} 
    environment: 
     HOME: /home/user 
    command: supervisord -n 
    volumes: 
     - ..:/builds/lmm/website 
     - db_website:/var/lib/mysql 
    ports: 
     - 8765:80 
     - 12121:443 
     - 3309:3306 
    networks: 
     - ntw 

volumes: 
    db_website: 

networks: 
    ntw: 

내가 고정 표시기-작성 파일 내에서 원사 패키지 관리자를 설치하려면 :이처럼 보이는 고정 표시기 - compose.yml이 이것을 선언하는 방법, 나는 시도했다.

command: supervisord -n && sudo apt-get update && sudo apt-get install yarn 

자동으로 실패한. 어떻게 이것을 올바르게 선언 할 수 있습니까? 아니면 도커 - compose.yml이 잘못된 장소입니까? sudo는이 고정 표시기에서 작동하지 않기 때문에

답변

0

command: supervisord -n && apt-get update && apt-get install yarn 

을보십시오.

+0

맞음. 그러나 나는 시도했다. 그리고 이것이 실패하고있는 것처럼 보인다. – Blackbam

1

왜 사용하지 않습니까? Dockerfile이 작업을 위해 특별히 설계 되었습니까?

"이미지"속성을 "빌드"속성으로 변경하여 Dockerfile을 연결하십시오.

귀하의 고정 표시기 - compose.yml은 다음과 같이 보일 것이다 :

FROM lmm/lamp:php${PHP_VERSION:-71} 

RUN apt-get update && apt-get install bash 
:

services: 
    lmm-website: 
    build: 
     context: . 
     dockerfile: Dockerfile 
    container_name: ${CONTAINER_NAME:-lmm-website} 
    environment: 
     HOME: /home/user 
    command: supervisord -n 
     volumes: 
     - ..:/builds/lmm/website 
     - db_website:/var/lib/mysql 
    ports: 
     - 8765:80 
     - 12121:443 
     - 3309:3306 
    networks: 
     - ntw 

volumes: 
    db_website: 

networks: 

그런 다음 다음과 같은 내용으로 고정 표시기 - compose.yml과 같은 경로에 Dockerfile라는 텍스트 파일을 만듭니다

추가, COPY 등과 같은 다른 Dockerfile 기능과 별도로 Dockerfile의 RUN (cp, mv, ls, bash ...)을 원하는만큼 추가 할 수 있습니다.

+ 정보는 :

https://docs.docker.com/engine/reference/builder/

+ 라이브 예 :

내가 라는 GitHub의 프로젝트 만든을 안녕하세요 - 고정 표시기를-반응한다. 이름이 말하는 바와 같이 도커 - 반응 상자가 있으며 위에서 설명한 절차를 사용하여 원사와 다른 도구를 설치하는 경우 예제로 제공 할 수 있습니다.

그 외에도 docker-compose entrypoint 속성을 사용하여 docker-compose.yml 파일에 링크 된 진입 점 bash 스크립트를 사용하여 원사를 시작합니다.

https://github.com/lopezator/hello-docker-react