You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a specific pipeline configuration where i need to have some inter services communication. Indeed, I need to use a nginx / php-fpm stack for my Symfony application and the Nginx service uses the PHP service as an upstream.
As such, I need to know (and use) the PHP service name (or IP address) for the Nginx configuration in an environment variable.
Here is my pipeline code:
version: v1.0
name: deploy-backend
description: Deploy the application backend
jobs:
- job: Setup the application package
steps:
- artifactDownload:
path: Download installable package
pattern: epr-backend-api
tag: '{{.cds.version}}'
- script:
- # Test that I get my application home page
- curl -X GET http://nginx-api:80
- echo "Result $?"
requirements:
- model: epr-PHP
- service:
name: mailer
value: '{{.cds.proj.DOCKER_REGISTRY}}{{.cds.proj.DOCKER_REGISTRY_PREFIX}}epr-backend_mailer:{{.cds.proj.IMAGE_TAG_MAILER}} APP_ENV={{.cds.env.APP_ENV}}'
- service:
name: mariadb
value: '{{.cds.proj.DOCKER_REGISTRY}}{{.cds.proj.DOCKER_REGISTRY_PREFIX}}epr-backend_db:{{.cds.proj.IMAGE_TAG_DB}} APP_ENV={{.cds.env.APP_ENV}} MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=false MARIADB_ROOT_PASSWORD={{.cds.env.DATABASE_ROOT_PASSWORD}} MARIADB_DATABASE={{.cds.env.DATABASE_NAME}} MARIADB_USER={{.cds.env.DATABASE_USER}} MARIADB_PASSWORD={{.cds.env.DATABASE_PASSWORD}}'
- service:
name: nginx-api
value: '{{.cds.proj.DOCKER_REGISTRY}}{{.cds.proj.DOCKER_REGISTRY_PREFIX}}epr-backend_nginx:{{.cds.proj.IMAGE_TAG_NGINX}} HOSTNAME=nginx-api APP_ENV={{.cds.env.APP_ENV}} NGINX_PHP_UPSTREAM_HOST=php-api NGINX_PHP_UPSTREAM_PORT=9000 NGINX_PHP_UPSTREAM_COMMENT=n/a'
- service:
name: php-api
value: '{{.cds.proj.DOCKER_REGISTRY}}{{.cds.proj.DOCKER_REGISTRY_PREFIX}}epr-backend_php:{{.cds.proj.IMAGE_TAG_PHP}} HOSTNAME=php-fpm APP_ENV={{.cds.env.APP_ENV}}'
With this configuration the nginx-api service fails to start because it cannot reach the php-api container.
When I replace php-api with 127.0.0.1 (or 172.17.0.1, or any pingable ip address) in the NGINX_PHP_UPSTREAM_HOST environment variable, the nginx-api starts correctly but my curl script fails because of a bad gateway.
Is there a solution to have the real address (or better, the hostname) of my php-api service container ?
**[edit]**indeed, one solution to get the service container hostname would be to be able to use the worker model name as a variable; see #5988
The text was updated successfully, but these errors were encountered:
I have a specific pipeline configuration where i need to have some inter services communication. Indeed, I need to use a nginx / php-fpm stack for my Symfony application and the Nginx service uses the PHP service as an upstream.
As such, I need to know (and use) the PHP service name (or IP address) for the Nginx configuration in an environment variable.
Here is my pipeline code:
With this configuration the
nginx-api
service fails to start because it cannot reach thephp-api
container.When I replace
php-api
with127.0.0.1
(or172.17.0.1
, or any pingable ip address) in theNGINX_PHP_UPSTREAM_HOST
environment variable, thenginx-api
starts correctly but my curl script fails because of a bad gateway.Is there a solution to have the real address (or better, the hostname) of my
php-api
service container ?**[edit]**indeed, one solution to get the service container hostname would be to be able to use the worker model name as a variable; see #5988
The text was updated successfully, but these errors were encountered: