首页 > 解决方案 > 如何使用 docker-compose.yml 在映射为卷的目录中克隆 GitHub 存储库?

问题描述

我有一个docker-compose.yml类似的:

version: '3'
services:
  my_service:
    image: ....

    container_name: ...
    volumes:
      - "./data:/my_service/data"

    command: >
      ....

运行后docker-compose pull,我在主机上手动运行git clone git@github.com:.....,在共享目录(映射为卷)中克隆一个私有 GitHub 存储库。这工作正常,但我想知道是否可以使用 Docker 处理此手动步骤。

做一些研究,我发现了一些使用 a 的例子,Dockerfile但如果可能的话,我宁愿只使用 docker-compose.yml

标签: dockerdocker-compose

解决方案


实现这一点的正确方法是编写一个自定义 docker 文件并通过 docker compose 对其进行寻址。

这是一个例子:

docker-compose 文件片段*

version: '3'

services:
  my_service:
    build:
      context: 
      dockerfile: my_service.dockerfile

    # ... continue ...

my_service.dockerfile

FROM some_image:some_tag

RUN apt update -y && \
    apt install -y git

RUN cd some_folder && \
    git clone some_uri

推荐阅读