У меня есть изображение ActiveMQ Docker, хранящееся в локальном репозитории Nexus.
Я пытаюсь развернуть ActiveMQ из этого образа в качестве службы на экземпляре Portainer с использованием следующего stack.yml: -
version: "3"
networks:
jon:
services:
activemq:
image: nexus:21111/activemq:latest
ports:
- "15100:61616"
volumes:
- /jon/test/activemq/data:/data/activemq
- /jon/test/activemq/conf:/opt/activemq/conf
- /jon/test/activemq/log:/var/log/activemq
networks:
- jon
environment:
ACTIVEMQ_ADMIN_LOGIN: xxxxx
ACTIVEMQ_ADMIN_PASSWORD: xxxxx
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ACTIVEMQ_CONFIG_DIR: /opt/activemq/conf
ACTIVEMQ_DATA_DIR: /data/activemq
deploy:
placement:
constraints:
- node.labels.affinity == ${NODE}
replicas: 1
restart_policy:
condition: on-failure
До развертывания этого stack.yml я создал три тома хоста, указанные в разделе томов. Я установил полные права на чтение и запись для этих каталогов для всех пользователей.
Когда я попытался развернуть файл yml в Portainer, изображение извлекается, и контейнер запускается со статусом «Выполняется». Однако, когда я изучаю журналы, я вижу следующее: -
2019-03-15 15:08:50,450 CRIT Supervisor running as root (no user in config file)
2019-03-15 15:08:50,450 WARN Included extra file "/etc/supervisor/conf.d/activemq.conf" during parsing
2019-03-15 15:08:50,450 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2019-03-15 15:08:50,469 INFO RPC interface 'supervisor' initialized
2019-03-15 15:08:50,469 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2019-03-15 15:08:50,470 INFO supervisord started with pid 1
2019-03-15 15:08:51,473 INFO spawned: 'cron' with pid 16
2019-03-15 15:08:51,477 INFO spawned: 'activemq' with pid 17
2019-03-15 15:08:52,219 INFO exited: activemq (exit status 1; not expected)
2019-03-15 15:08:53,221 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-03-15 15:08:53,222 INFO spawned: 'activemq' with pid 87
2019-03-15 15:08:53,980 INFO exited: activemq (exit status 1; not expected)
2019-03-15 15:08:55,983 INFO spawned: 'activemq' with pid 158
2019-03-15 15:08:56,721 INFO exited: activemq (exit status 1; not expected)
2019-03-15 15:08:59,726 INFO spawned: 'activemq' with pid 229
2019-03-15 15:09:00,443 INFO exited: activemq (exit status 1; not expected)
2019-03-15 15:09:01,445 INFO gave up: activemq entered FATAL state, too many start retries too quickly
Соответствующее сообщение об ошибке вставлено ниже: -
Traceback (most recent call last):
File "/app/entrypoint/Init.py", line 331, in <module>
serviceRun.setting_all()
File "/app/entrypoint/Init.py", line 256, in setting_all
self.do_init_activemq()
File "/app/entrypoint/Init.py", line 246, in do_init_activemq
self.replace_all(ACTIVEMQ_CONF + "/log4j.properties", "\$\{activemq\.base\}\/data\/", "/var/log/activemq/")
File "/app/entrypoint/Init.py", line 27, in replace_all
f = open(file,'r')
IOError: [Errno 2] No such file or directory: '/opt/activemq/conf.tmp/log4j.properties'
В нем упоминается отсутствующий файл. Действительно, когда я смотрю на тома хоста, связанные с /opt/activemq/conf.tmp
и /opt/activemq/conf
, в них вообще ничего нет, хотя один файл, activemq.pid
, записывается на том хоста, связанный с /data/activemq
.
Кто-нибудь видел такое поведение и / или, возможно, есть какие-либо предположения о том, где я могу пойти не так? Большое спасибо за чтение моего вопроса.