2015-12-06 5 views
16

Mit Docker-Compose können Sie entweder vorhandene Docker-Images verwenden oder aus der Quelle erstellen. Für die Build-Option erfordert die official referenceWie kann ich docker-compose bauen ein Bild von einem Remote-Git-Repository erstellen?

Either a path to a directory containing a Dockerfile, or a url to a git repository.

Ich mag würde Vorteil der letzteren Fall zu übernehmen, so dass ich keinen git Submodul in meinem Projekt erstellen müssen oder ein neues Repository auf Docker registrieren Nabe. Leider gibt es keine Beispiele für die Formatierung der URL, und jedes Formular, das ich ausprobiert habe, wird fälschlicherweise für einen relativen Dateipfad gehalten.

z.B.

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

schlägt mit dem Fehler:

ERROR: build path /{MY_CURRENT_PATH}/https:/github.com/letsencrypt/letsencrypt.git either does not exist or is not accessible.

ich nicht mehr Glück mit den anderen Formen habe ich versucht habe:

Antwort

12

Verwenden Sie Version 1.5.2? Es sieht so aus, als ob dies kürzlich in https://github.com/docker/compose/pull/2430 hinzugefügt wurde. Versuche es mit einem Upgrade.

Beispiel:

--- 

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 

Getestet mit:

$ docker-compose -v 
docker-compose version 1.11.2, build dfed245 
+3

Ich habe die erste Regel von Docker vergessen: Im Zweifelsfall Upgrade. $ Docker-komponieren --Version Docker-compose Version: 1.5.1 Schade, dass die zweite Regel ist, bereiten den Rest des Tages zu verbringen Festsetzung was das Upgrade brach ... – billwanjohi

+0

Yep. Docker ist momentan eine sehr schnelllebige Welt! :) –

+0

Wenn Sie auf einem Mac oder Windows arbeiten, stellen Sie sicher, dass Sie die Docker Toolbox verwenden, um alle Docker-Tools korrekt versioniert zu halten. Https://www.docker.com/docker-toolbox – taco

6

Die Datei tests/unit/config/config_test.py zeigt:

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', 
    ] 

Dies wird mit compose/config/config.py#L79-L85 bestätigt:

DOCKER_VALID_URL_PREFIXES = (
    'http://', 
    'https://', 
    'git://', 
    'github.com/', 
    '[email protected]', 
) 
Verwandte Themen