Bei jedem Push startet Gitlab-ci meine Hauptdocker my-deploy
und klont den Code in die /builds
directoy.Gitlab CI: Apache-Dienst bereitstellen Docker DocumentRoot-Verzeichnis in Hauptdocker
Jetzt habe ich ein Service-Docker my-apache
zu dem oben genannten hinzugefügt. Das Andockfenster my-apache
ist so eingerichtet, dass es Apache startet und /shared/httpd/localhost
als DocumentRoot für Apache verwendet.
Die projektbasierten .gitlab-ci.yml
wie folgt aussieht:
#
# This starts `my-deploy` docker and links an apache service docker...
#
testing:
stage: deploy
services:
- my-apache:latest
script:
- curl $MY_APACHE_PORT_80_TCP_ADDR
Jetzt habe ich meinen ausgecheckt Code will (innen my-deploy
Docker im Verzeichnis /builds
) auf/in den Apache-Docker my-apache
in den /shared/httpd/localhost
dir verknüpft werden montiert.
Das sollte mount/Link sein:
my-deploy:/builds
->my-apache:/shared/httpd/localhost
Jede Idee, wenn dies möglich ist und wie diese konfigurieren?
Mein Gitlab Starter config (/etc/gitlab-runner/config.toml
), die my-deploy
als Läufer wie folgt aussieht ergänzt:
# Main Linter
[[runners]]
url = "https://gitlab.mydomain.com/ci"
token = "XXXXXXXXXXXXXXXXXXXXXXXX"
name = "MY_DEPLOY"
executor = "docker"
limit = 0
[runners.docker]
image = "my-deploy:latest"
privileged = false
cache_dir = ""
disable_cache = true
wait_for_services_timeout = 90
Update:
Wie Gitlab funktioniert die Docker Integration:
http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-docker-integration-works
Können Sie bitte ein Beispiel geben. – lockdoc
@lockdoc Ich habe Dokumente, Links und Syntaxbeispiel zur Antwort hinzugefügt.Was ich befürchte (wie ich es noch nicht getestet habe), ist, dass Sie in Volumes mehrere Mountpunkte deklarieren, was bedeutet, dass Ihr benanntes Volume zweimal pro Service bereitgestellt wird. (eins in '/ build', ein in'/shared/httpd/localhost'). Überprüfen Sie es, und sehen Sie, ob mindestens Ihre zwei Container das gleiche Volumen auf den erwarteten Pfaden teilen. – VonC
muss ich 'VOLUME' innerhalb der' Dockerfile' definieren, um ein gemeinsames Verzeichnis zu erstellen? – lockdoc