web-dev-qa-db-fra.com

Comment installer des paquets de Docker compose?

Bonjour, je suis nouveau chez Docker. J'ai un docker-compose.yml qui ressemble à ceci:

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:

Je souhaite installer le gestionnaire de paquets Yarn à partir du fichier docker-compose:

Sudo apt-get update && Sudo apt-get install yarn

Je n'arrivais pas à comprendre comment déclarer cela, j'ai essayé 

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

qui échoue silencieusement. Comment est-ce que je déclare ceci correctement? Ou bien docker-compose.yml est-il le mauvais endroit pour cela?

9
Blackbam

Pourquoi ne pas utiliser Dockerfile spécialement conçu pour cette tâche?

Modifiez votre propriété "image" en "construction" pour lier un fichier Docker.

Votre docker-compose.yml ressemblerait à ceci:

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:

Créez ensuite un fichier texte nommé Dockerfile dans le même chemin que docker-compose.yml avec le contenu suivant:

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

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

Vous pouvez ajouter autant de commandes SO que vous voulez en utilisant RUN de Dockerfile (cp, mv, ls, bash ...), en plus des autres fonctionnalités de Dockerfile telles que ADD, COPY, etc.

+ info:

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

+ live-example:

J'ai créé un projet github appelé hello-docker-react. Comme son nom l'indique, il s'agit d'une boîte à réaction docker, qui peut vous servir d'exemple, car je suis en train d'installer du fil et d'autres outils en suivant la procédure que j'ai expliquée ci-dessus.

En plus de cela, je commence également à utiliser un script bash entrypoint lié au fichier docker-compose.yml à l'aide de la propriété docker-compose entrypoint.

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

10
sh4

Essaye ça

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

Parce que Sudo ne fonctionne pas dans le menu fixe.

0
sanath meti