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?
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.
Essaye ça
command: supervisord -n && apt-get update && apt-get install yarn
Parce que Sudo ne fonctionne pas dans le menu fixe.