Jenkins集成:docker-compose 权限问题
Jenkins集成:docker-compose 权限问题一、问题:使用docker-compose up -d 启动服务器时,生成到文件是以root身份创建,不安全。二、原因:docker-compose 默认以root用户启容器三、 解决方案:使用非root用户dockerfile文件中创建创建非root用户,在CMD之前,切换到此用户FROM xxx# create non-privileg
·
Jenkins集成:docker-compose 权限问题
一、问题:使用docker-compose up -d 启动服务器时,生成到文件是以root身份创建,不安全。

二、原因:docker-compose 默认以root用户启容器
三、 解决方案:使用非root用户
- dockerfile文件中创建创建非root用户,在CMD之前,切换到此用户
FROM xxx
# create non-privileged user and group
RUN groupadd -r mahuaping -g 1001 && useradd mahuaping -u 1001 -g mahuaping
...
USER 1001:1001
CMD ["start"]
- docker-compose.yml 中使用非root用户
添加user,uid & gid: 1001;
增加volumes卷"log:/var/workspacedo/log":指定device: ./log
version: '3'
services:
app:
build:
context: .
dockerfile: pack/Dockerfile
args:
conf: pack/conf
script: pack/script
image: qa/app-server:${TAG}
user: 1001:1001
volumes:
- "log:/var/workspace/log"
volumes:
log:
driver_opts:
type: none
device: ./log
- pipeline中,启动docker-compose up
复制docker-compose.yml文件到src目录,并创建log目录(当前用户为mahuaping,可以根据项目需要修改用户)
// Run app container.
stage("启动服务") {
steps {
script {
def standalone_path = "pack/standalone"
sh "cp ${standalone_path}/docker-compose.yml src"
sh "mkdir -p src/log"
dir("src") {
sh (
""" \
TAG=latest \
docker-compose up \
-d \
"""
)
}
}
}
}
四、成功更改log目录以及子目录权限

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)