Met Docker-compose kunt u ofwel bestaande docker-images gebruiken of vanaf de bron bouwen. Voor de build-optie vereist de officiële referentie
Ofwel een pad naar een map die een Dockerfile bevat, of een url naar een git-repository.
Ik wil graag profiteren van het laatste geval, zodat ik geen git-submodule in mijn project hoef te maken of een nieuwe repository op Docker Hub hoef te registreren. Helaas zijn er geen voorbeelden voor het formatteren van de url, en elke vorm die ik heb geprobeerd, wordt aangezien voor een relatief bestandspad.
bijv.
---
letsencrypt:
build: https://github.com/letsencrypt/letsencrypt.git
...
Mislukt met de fout:
FOUT: bouwpad /{MY_CURRENT_PATH}/https:/github.com/letsencrypt/letsencrypt.git bestaat niet of is niet toegankelijk.
Ik had geen geluk meer met de andere vormen die ik heb geprobeerd:
- [email protected]:letsencrypt/letsencrypt.git
- git://github.com/letsencrypt/letsencrypt.git
- https://github.com/letsencrypt/letsencrypt
Antwoord 1, autoriteit 100%
Gebruik je versie 1.5.2? Het lijkt erop dat dit onlangs is toegevoegd in https://github.com/docker/compose/pull/ 2430. Probeer te upgraden.
Voorbeeld:
---
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
Getest met:
$ docker-compose -v
docker-compose version 1.11.2, build dfed245
Antwoord 2, autoriteit 28%
Het bestand tests/unit/config/config_test.py
toont:
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',
]
Dit wordt bevestigd met compose/config/config.py#L79-L85
:
DOCKER_VALID_URL_PREFIXES = (
'http://',
'https://',
'git://',
'github.com/',
'git@',
)
Antwoord 3, autoriteit 2%
Ik denk dat er nu een betere manier is om dit te doen!
Als je een Docker-bestand wilt gebruiken dat zich in de repo bevindt en de repo is openbaar, kun je het beste het onbewerkte bestand gebruiken.
Bijvoorbeeld voor het bestand Dockerfile_dev in https://github.com/certbot/certbotzou je https://raw.githubusercontent.com/certbot/certbot/master/Dockerfile-dev
Voeg het dan in docker-compose als volgt toe om het Dockerbestand vanaf de externe locatie te gebruiken.
certbot_dev:
image: certbot-dev
build: https://raw.githubusercontent.com/certbot/certbot/master/Dockerfile-dev
Je kunt de onbewerkte link vinden als je op een knop met de naam ‘Raw’ klikt in het bestandsvoorbeeld: https://github.com/certbot/certbot/blob/master/Dockerfile-dev