Docker从git存储库构建上下文,其中Dockerfile位于文件夹中

jor*_*tor 2 docker docker-compose

我想使用git存储库在docker compose项目中构建新映像,因为我需要更改一些ARG变量。

我担心的是,Dockerfile位于git存储库的文件夹中。

如何使用git仓库将文件夹指定为构建上下文?

仓库:https : //github.com/wodby/drupal-php/blob/master/7/Dockerfile

version: "2"
services:
  php:
    build:
      context: https://github.com/wodby/drupal-php.git
      dockerfile: 7/Dockerfile
      args:
         - BASE_IMAGE_TAG=7.1
         - WODBY_USER_ID=117
         - WODBY_GROUP_ID=111
      volumes:
          - ./:/var/www/html
Run Code Online (Sandbox Code Playgroud)

我尝试了dockerfile属性:“ FOLDER /” + Dockerfile

但是存储库使用相对路径,并且没有找到依赖项:

 ---> 6cc2006e9102
Step 7/9 : COPY templates /etc/gotpl/
ERROR: Service 'phpe' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder740707850/templates: no such file or directory
Run Code Online (Sandbox Code Playgroud)

jor*_*tor 6

应该是这样的:myrepo.git#:myfolder

version: "2"
services:
  php:
    build:
      context: https://github.com/wodby/drupal-php.git#:7
      args:
         - BASE_IMAGE_TAG=7.1
         - WODBY_USER_ID=117
         - WODBY_GROUP_ID=111
      volumes:
          - ./:/var/www/html
Run Code Online (Sandbox Code Playgroud)

https://docs.docker.com/engine/reference/commandline/build/#git-repositories

  • 对于私有存储库:在 _gitignored_ `.env` 文件中使用 `https://${TOKEN}:@github.company.com/org/repo.git` 和 `TOKEN` 来保护令牌。资料来源:[docker-compose-issue-3038](https://github.com/docker/compose/issues/3038#issuecomment-292044389),@Dorin 和 @David 在 [stackoverflow] (https:// stackoverflow.com/questions/56458434/host-key-verification-failed-when-building-image-with-docker-compose-from-a-priv) 和 [docker-compose:environment-variables] (https:// docs.docker.com/compose/environment-variables/) (2认同)