簡體   English   中英

Docker Compose 與 git clone 一起使用

[英]Docker Compose using with git clone

我試圖通過 Git 在我的 docker compose 上進行克隆,但我剛剛開始使用 docker,我不知道該怎么做。 我想在 de apache(文檔根目錄)/var/www/html 中進行下載。 該行是: command: bash -c "git clone git@github.com:user/project.git"

version: '3.8'

services:
    mysql:
      image: mysql:8.0.21
      command: --default-authentication-plugin=mysql_native_password
      restart: always
      container_name: mysql
      environment:
          - MYSQL_ROOT_PASSWORD=root
          - MYSQL_USER=user
          - MYSQL_PASSWORD=pass
          - MYSQL_MAX_ALLOWED_PACKET=1024M
          - MYSQL_INNODB_BUFFER_POOL_SIZE=1G
          - MYSQL_INNODB_LOG_FILE_SIZE=256M
          - MYSQL_INNODB_LOG_BUFFER_SIZE=256M
      ports:
          - '3361:3360'
      volumes:
          - "./docker/mysql:/docker-entrypoint-initdb.d"
    apache:
      image: php:7.4.11-apache
      restart: always
      container_name: apache
      ports:
        - '8081:80'
        - '443:8443'
      volumes:
        - ./docker/www:/var/www/html
      command: bash -c "git clone git@github.com:user/project.git"
      environment:
        XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.15.21 remote_port=8081 remote_autostart=1"
      depends_on:
        - mysql
      links:
        - mysql
    phpmyadmin:
      image: phpmyadmin:latest
      restart: always
      container_name: phpmyadmin
      ports:
        - 8080:80
      depends_on:
        - mysql
      environment:
        - PMA_ARBITRARY=1
      volumes:
        - "./docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php"

@GustavoFilgueiras 您遇到錯誤的原因是因為您用於apache服務的圖像php:7.4.11-apache沒有預裝git 此外,根據您的反饋,以下假設您正在嘗試連接到私有存儲庫,並且通常使用的 SSH 密鑰位於默認路徑~/.ssh/id_rsa (如果不是,請在docker-compose.yml更新)案件)。 您有兩種選擇來解決它:

  1. (推薦)使用php:7.4.11-apache作為基礎鏡像創建一個新的自定義鏡像。 這帶來了將此依賴項直接添加到映像中的好處,這樣啟動時間就不會遇到不必要的延遲。 為此,您需要在同一目錄中創建一個Dockerfile ,如下所示:
FROM php:7.4.11-apache
RUN \
  apt-get update && \
  apt-get install git -y && \
  ssh-keyscan -t rsa github.com > ~/.ssh/known_hosts

然后你可以在你docker-compose.yml修改你的apache服務, docker-compose.yml所示:

    apache:
      build: .
      restart: always
      container_name: apache
      ports:
        - '8081:80'
        - '443:8443'
      volumes:
        - ./docker/www:/var/www/html
        - ~/.ssh/id_rsa:/root/.ssh/id_rsa
      command: bash -c "git clone git@github.com:user/project.git"
      environment:
        XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.15.21 remote_port=8081 remote_autostart=1"
      depends_on:
        - mysql
      links:
        - mysql
  1. docker-compose.yml包含多個命令。 這不需要任何其他文件,但結果會增加啟動時間的不必要延遲,因為每次都需要安裝git依賴項。 例如,您docker-compose.yml apache服務可能如下所示:
    apache:
      image: php:7.4.11-apache
      restart: always
      container_name: apache
      ports:
        - '8081:80'
        - '443:8443'
      volumes:
        - ./docker/www:/var/www/html
        - ~/.ssh/id_rsa:/root/.ssh/id_rsa
      command: 
        - bash
        - -c
        - >
          apt-get update;
          apt-get install git -y;
          ssh-keyscan -t rsa github.com > ~/.ssh/known_hosts;
          git clone git@github.com:user/project.git;
      environment:
        XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.15.21 remote_port=8081 remote_autostart=1"
      depends_on:
        - mysql
      links:
        - mysql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM