Docker-compose не видит переменные окружения на JAVA_OPTS - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь установить переменные JAVA_OPTS для запуска elassandra с помощью docker-compose.

Вот что я реализовал:

docker-compose.yml

version: '2'
services:
 elassandra:
    image: strapdata/elassandra:new
    container_name: elassandra
    environment:
      - echo 'JVM_OPTS="$JVM_OPTS -javaagent:/var/lib/docker/volumes/data/_data/jmx_prometheus_javaagent-0.3.0.jar=6090:/var/lib/docker/volumes/data/_data/cassandra.yml"' >> /etc/cassandra/cassandra-env.sh
    env_file:
      - /home/ubuntu/Docker/cassandra/conf/cassandra.env
    volumes:
       - /home/ubuntu/Docker/cassandra/jarfile:/var/lib/docker/volumes/data/_data
    ports:
      - '7000:7000'
      - '7001:7001'
      - '7199:7199'
      - '9042:9042'
      - '9142:9142'
      - '9160:9160'
      - '9200:9200'

Том и env_files работают правильно, единственная проблема в том, что docker-compose не видит переменные окружения, и после выполнения команды docker-compose -f docker-compose.yml up я сталкиваюсь со следующей ошибкой, из-за которой elassandra перестает работать:

The JVM_OPTS variable is not set. Defaulting to a blank string.

Я также пробовал arg и command вместо environment, к сожалению, никто из них не устанавливал переменные JAVA_OPTS.

Вопрос: Есть ли способ установить переменные JAVA_OPTS, например echo 'JVM_OPTS="$JVM_OPTS -javaagent:/var/lib/docker/volumes/data/_data/jmx_prometheus_javaagent-0.3.0.jar=6090:/var/lib/docker/volumes/data/_data/cassandra.yml"' >> /etc/cassandra/cassandra-env.sh, в файле docker-compose.yml?

...