Как получить имя хоста и переименовать docker контейнер на этом? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть docker -композитный файл для моей бэкэнд-службы следующим образом.

backend:
    container_name: backend
    build:
      context: .
      dockerfile: docker/dev.Dockerfile
      # TODO: Try using cache_from pointed at a Docker Hub image built from master
      # Though may need to also use the workaround for local vs remote:
      # https://github.com/moby/moby/issues/32612#issuecomment-294055017
      # cache_from: TODO
    image: treeherder-backend
    privileged: true
    environment:
      # Development/CI-specific environment variables only.
      # Those that do not vary across environments should go in `Dockerfile`.
      - BROKER_URL=amqp://guest:guest@rabbitmq//
      - DATABASE_URL=${DATABASE_URL:-mysql://root@mysql/treeherder}
      - GITHUB_TOKEN=${GITHUB_TOKEN:-}
      - UPSTREAM_DATABASE_URL=${UPSTREAM_DATABASE_URL:-}
      - PERF_SHERIFF_BOT_CLIENT_ID=${PERF_SHERIFF_BOT_CLIENT_ID:-}
      - PERF_SHERIFF_BOT_ACCESS_TOKEN=${PERF_SHERIFF_BOT_ACCESS_TOKEN:-}
      - PULSE_AUTO_DELETE_QUEUES=True
      - REDIS_URL=redis://redis:6379
      - SITE_URL=http://backend:8000/
      - TREEHERDER_DEBUG=True
      - NEW_RELIC_INSIGHTS_API_KEY=${NEW_RELIC_INSIGHTS_API_KEY:-}
      - HOSTNAME=${HOSTNAME:-}
    entrypoint: './docker/entrypoint.sh'
    # We *ONLY* initialize the data when we're running the backend
    command: './initialize_data.sh ./manage.py runserver 0.0.0.0:8000'
    # Django's runserver doesn't listen to the default of SIGTERM, so docker-compose
    # must send SIGINT instead to avoid waiting 10 seconds for the time out.
    stop_signal: SIGINT
    # https://github.com/SeleniumHQ/docker-selenium#running-the-images
    shm_size: 2g
    volumes:
      - .:/app
    ports:
      - '8000:8000'
    depends_on:
      - mysql
      - redis
      - rabbitmq
    stdin_open: true
    tty: true

Я хочу назвать этот контейнер динамически, выбрав имя хоста, на котором он работает, и переименовав себя на это значение , Пожалуйста, дайте мне знать, если есть какие-либо способы сделать это

Текущее имя хоста контейнера - Случайная строка от docker

Желаемое имя хоста контейнера - $ (whoami) - $ (имя хоста) ) хост-системы, на которой это будет работать

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете назвать ваши контейнеры при запуске (вы не указали, как вы запускаете свои контейнеры, поэтому я предполагаю, что вы используете docker run).

Это достигается с помощью: docker run -d --name YOUR_NAME YOUR_IMAGE

Таким образом, вы можете иметь YOUR_NAME в качестве переменной, содержащей нужные поля, например, запуск контейнера ubuntu:latest:

name=$(whoami)-$(uname -n)
docker run -d --name $name ubuntu:latest
...