[英]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.