Based on Nginx official image, with an added cron job to query specified Marathon for upstreams
936
Based on Nginx official image, with an added cron job to query specified Marathon instances and create upstreams.
The script is based on 'haproxy-marathon-bridge' from marathon's project (https://github.com/mesosphere/marathon/blob/master/bin/haproxy-marathon-bridge)
Supervisor is used in order to run cron in foreground, as it doesn't work when running in background inside the docker.
docker run ... argussecurity/nginx-marathon inject-and-run <apps_regex> <marathon host:port>+
where <apps_regex> is a regular expression to filter Marathon's tasks on (use "" for all).
docker run -d -p 80:80 argussecurity/nginx-marathon inject-and-run "^(play-server|node-server)$" localhost:8080
Will do the following:
Create a cron job to run 'nginx-marathon-bridge' script every 1 minute. The script generates a file named 'sites.conf' in /etc/nginx/conf.c/ The file will contain all tasks queried from Marathon that match the given regex ("^(play-server|node-server)$") as upstreams, for example:
upstream play-server {
server some_route:some_port;
# ...
}
upstream node-server {
server some_route:some_port;
# ...
}
Run nginx as in the official nginx docker (nginx -g "daemon off;")
--net=host)Content type
Image
Digest
sha256:29dfa33d0…
Size
96.2 MB
Last updated
over 8 years ago
docker pull argussecurity/nginx-marathon