将主机名用于自定义服务

时间:2018-09-29 00:12:51

标签: ddev

是否可以将主机名用于自定义服务。目前,我有以下内容:

Redis服务:docker-compose.redis.yml

version: '3.6'
services:
  redis:
    container_name: ddev-${DDEV_SITENAME}-redis
    image: redis:latest
    restart: always
    ports:
      - 6379
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    environment:
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      - HTTP_EXPOSE=6379
    volumes: []
  web:
    links:
      - redis:$DDEV_HOSTNAME

Redis Commander服务:docker-compose.commander.yml

version: '3.6'
services:
  redis:
    container_name: ddev-${DDEV_SITENAME}-commander
    image: rediscommander/redis-commander:latest
    restart: always
    ports:
      - 8081
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    environment:
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      - HTTP_EXPOSE=8081
      - REDIS_HOSTS=local:redis:6379
    volumes: []
  web:
    links:
      - commander:$DDEV_HOSTNAME

目前,我可以使用<project-name>.ddev.local:8081/从外部访问Redis Commander。

如果可能的话,我想实现的是从自定义主机名或子域访问Redis Commander,例如:comander.<project-name>.ddev.localcommander.local

1 个答案:

答案 0 :(得分:1)

经过兰迪·费伊(Randy Fay)的一些研究和大量帮助,我们得以实现。我们必须运行以下命令:

$ sudo ddev hostname commander.local 127.0.0.1

Redis Commander服务文件(docker-compose.commander.yml)必须更新为:

version: '3.6'
services:
  commander:
    container_name: ddev-${DDEV_SITENAME}-commander
    image: rediscommander/redis-commander:latest
    restart: always
    ports:
      - 8081
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    environment:
      - VIRTUAL_HOST=commander.local
      - HTTP_EXPOSE=80
      - REDIS_HOSTS=local:redis:6379
    volumes: []
  web:
    links:
      - commander:$DDEV_HOSTNAME
      - commander:commander.local

使其正常工作。