加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – 在docker-compose的命令键中使用容器的环境变量

发布时间:2020-12-13 21:39:02 所属栏目:Nginx 来源:网络整理
导读:我在docker-compose.yml中有两个服务:docker-gen和nginx. Docker-gen链接到nginx.为了使docker-gen工作,我必须传递nginx容器的实际名称或哈希,以便docker-gen可以在更改时重新启动nginx. 当我将docker-gen链接到nginx时,docker-gen容器中会出现一组环境变量

我在docker-compose.yml中有两个服务:docker-gen和nginx. Docker-gen链接到nginx.为了使docker-gen工作,我必须传递nginx容器的实际名称或哈希,以便docker-gen可以在更改时重新启动nginx.

当我将docker-gen链接到nginx时,docker-gen容器中会出现一组环境变量,我最感兴趣的是NGINX_NAME – 它是nginx容器的名称.

因此,将$NGINX_NAME置于命令服务字段并使其正常工作应该是直截了当的.但是,当我启动服务时,$NGINX_NAME不会扩展.通过docker-gen日志查看我看到的行:

2015/04/24 12:54:27 Sending container '$NGINX_NAME' signal '1'
2015/04/24 12:54:27 Error sending signal to container: No such container: $NGINX_NAME

我的docker_config.yml如下:

nginx:
  image: nginx:latest
  ports:
    - '80:80'
  volumes:
    - /tmp/nginx:/etc/nginx/conf.d

dockergen:
  image: jwilder/docker-gen:latest
  links:
    - nginx
  volumes_from:
    - nginx
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock
    - ./extra:/etc/docker-gen/templates
    - /etc/nginx/certs
  tty: true
  command: >
    -watch
    -only-exposed
    -notify-sighup "$NGINX_NAME"
    /etc/docker-gen/templates/nginx.tmpl
    /etc/nginx/conf.d/default.conf

有没有办法将环境变量占位符置于命令中,以便在容器启动时可以扩展到实际值?

最佳答案
我已经为dockergen服务添加了入口点设置并稍微更改了命令:

dockergen:
  image: jwilder/docker-gen:latest
  links:
    - nginx
  volumes_from:
    - nginx
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock
    - ./extra:/etc/docker-gen/templates
    - /etc/nginx/certs
  tty: true
  entrypoint: ["/bin/sh","-c"]
  command: >
    "
    docker-gen
    -watch
    -only-exposed
    -notify-sighup $(echo $NGINX_NAME | tail -c +2)
    /etc/docker-gen/templates/nginx.tmpl
    /etc/nginx/conf.d/default.conf
    "

Docker注入的容器名称以’/’开头,但是当我将SIGHUP发送到带有斜杠的容器时,信号不会到达:

$docker kill -s SIGHUP /myproject_dockergen_1/nginx

如果我剥离它,nginx应该重新启动它.所以这个$(echo $NGINX_NAME | tail -c 2)部分就是从$NGINX_NAME中删除第一个字符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读