[英]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
更新)案件)。 您有兩種選擇來解決它:
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
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.