You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何挂载本地login.config覆盖ActiveMQ Artemis容器默认文件?

问题描述

我使用的镜像为quay.io/artemiscloud/activemq-artemis-broker,在docker-compose.yml中以root用户运行容器。挂载本地文件作为容器内新文件(如/home/jboss/broker/etc/my.json)可以正常工作,但挂载本地文件覆盖容器内已有的/home/jboss/broker/etc/login.config时失败,报错:

2024-03-04 22:30:59 Exception in thread "main" java.io.FileNotFoundException: broker/etc/login.config (Permission denied)

已确认容器内默认存在/home/jboss/broker/etc/目录,且该路径下有login.config文件:

[jboss@5905b996368e ~]$ pwd
/home/jboss

[jboss@5905b996368e ~]$ ls
broker

[jboss@5905b996368e ~]$ ls ./broker/etc/
...  login.config
...

请问如何将主机上的本地文件./config/login.config挂载到容器路径/home/jboss/broker/etc/login.config以实现覆盖?


解决方案

1. 调整本地文件的权限与所有者

容器内的ActiveMQ Artemis实际是以jboss用户运行程序,即使指定user: root启动容器,程序启动后会自动切换到jboss用户。挂载的本地文件权限配置不当会导致jboss用户无法读取。

  • 查询容器内jboss用户的UID:
docker exec -it <容器ID或名称> id jboss
# 示例输出:uid=1001(jboss) gid=1001(jboss) groups=1001(jboss)
  • 修改主机上login.config的所有者与权限:
chown 1001:1001 ./config/login.config
chmod 644 ./config/login.config

2. 启动时自动调整容器内文件权限

若不想修改主机文件权限,可在docker-compose.yml中添加启动命令,先调整挂载文件的权限再启动服务:

version: "3"
services:
  artemis:
    user: "root"
    image: quay.io/artemiscloud/activemq-artemis-broker
    environment:
      AMQ_USER: admin
      AMQ_PASSWORD: password
      AMQ_RESET_CONFIG: true
    volumes:
      - ./config/my.json:/home/jboss/broker/etc/my.json
      - ./config/login.config:/home/jboss/broker/etc/login.config
    ports:
      - "5672:5672"
      - "61616:61616"
      - "8161:8161"
    networks:
      - backend
    command: ["sh", "-c", "chown jboss:jboss /home/jboss/broker/etc/login.config && exec /opt/amq/bin/run.sh"]

networks:
  backend:
    driver: bridge

3. 切换为目录挂载

将本地config目录完整挂载到容器的/home/jboss/broker/etc目录,这种方式可避免单个文件挂载的权限冲突:

volumes:
  - ./config/:/home/jboss/broker/etc/

注意:此操作会覆盖容器内etc目录下的所有原有文件,请确保本地config目录包含所有必需的配置文件。


内容的提问来源于stack exchange,提问作者user842225

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:55:04