web-dev-qa-db-ja.com

docker-composeでリモートgitリポジトリからイメージをビルドするにはどうすればよいですか?

Docker-composeを使用すると、既存のdockerイメージを利用するか、ソースからビルドできます。ビルドオプションの場合、 公式リファレンス が必要です

Dockerfileを含むディレクトリへのパスまたはgitリポジトリへのURL

後者のケースを活用して、プロジェクトにgitサブモジュールを作成したり、Docker Hubに新しいリポジトリを登録したりする必要がないようにします。残念ながら、URLのフォーマット方法の例はありません。また、私が試したすべてのフォームは、相対ファイルパスと間違われています。

例えば.

---
letsencrypt:
  build: https://github.com/letsencrypt/letsencrypt.git
...

エラーで失敗します:

エラー:ビルドパス/{MY_CURRENT_PATH}/https:/github.com/letsencrypt/letsencrypt.gitが存在しないか、アクセスできません。

私が試した他の形式ではこれ以上運がありませんでした:

33
billwanjohi

バージョン1.5.2を実行していますか?これは実際に最近追加されたようです https://github.com/docker/compose/pull/24 。アップグレードしてみてください。

例:

---

version: '2'

services:
  redis:
    image: "redis:3.2.3"
    hostname: redis

  redis-commander:
    build: https://github.com/joeferner/redis-commander.git
    command: --redis-Host redis
    links:
      - "redis:redis"
    ports:
      - 8081

テスト済み:

$ docker-compose -v
docker-compose version 1.11.2, build dfed245
21
Andy Shinn

ファイル - tests/unit/config/config_test.py 表示:

def test_valid_url_in_build_path(self):
    valid_urls = [
        'git://github.com/docker/docker',
        '[email protected]:docker/docker.git',
        '[email protected]:atlassianlabs/atlassian-docker.git',
        'https://github.com/docker/docker.git',
        'http://github.com/docker/docker.git',
        'github.com/docker/docker.git',
    ]

これは compose/config/config.py#L79-L85

DOCKER_VALID_URL_PREFIXES = (
    'http://',
    'https://',
    'git://',
    'github.com/',
    'git@',
)
7
VonC