wake-up-neo.net

Wie installiere ich Pakete von Docker Compose?

Hallo, ich bin neu bei Docker. Ich habe eine docker-compose.yml , die so aussieht:

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:

Ich möchte den Yarn-Paketmanager aus der Docker-Compose-Datei installieren:

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

Ich konnte nicht herausfinden, wie ich das erklären kann, ich habe es versucht 

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

das scheitert lautlos. Wie erkläre ich das richtig? Oder ist docker-compose.yml der falsche Ort dafür?

9
Blackbam

Warum nicht Dockerfile verwenden, das speziell für diese Aufgabe entwickelt wurde?

Ändern Sie Ihre Eigenschaft "image" in "build", um eine Dockerfile zu verknüpfen.

Ihre docker-compose.yml würde so aussehen:

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:

Erstellen Sie dann eine Textdatei mit dem Namen Dockerfile in demselben Pfad wie docker-compose.yml mit folgendem Inhalt:

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

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

Sie können so viele SO -Befehle hinzufügen, wie Sie möchten, indem Sie Dockerfile-RUN (cp, mv, ls, bash ...) verwenden. Abgesehen von anderen Dockerfile-Funktionen wie ADD, COPY usw.

+ info:

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

+ Live-Beispiel:

Ich habe ein Github-Projekt mit dem Namen hello-docker-react erstellt. Wie der Name schon sagt, handelt es sich um eine Docker-React-Box, die Ihnen als Beispiel dienen kann, da ich Garn und andere Werkzeuge mit dem oben beschriebenen Verfahren installiere.

Darüber hinaus beginne ich Garn mit einem Entripoint-bash-Skript, das mit der docker-compose.yml-Datei verknüpft ist, und der die docker-compose-Entrypoint-Eigenschaft verwendet.

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

10
sh4

Versuche dies

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

Weil Sudo im Docker nicht funktioniert.

0
sanath meti