我正在使用docker-compose创建大量的Docker容器。所有的容器都有一个共享的卷。
volumes:
- ${PHP_SERVICES_FOLDER}:/var/www/web
docker容器如下。
使用具有777权限的卷的文件,Nginx和PHP可以读取,写入和执行文件,但是一旦我在Jenkins中触发了一个构建,即可更新卷中的文件。
我认为当权限为777时它起作用的原因是,它允许“其他”用户完全访问该卷。
如何让Nginx,PHP-FPM和Jenkins使用同一用户读取,写入和执行该卷中的文件?
答案 0 :(得分:0)
您可以使用相同的uid
在每个Dockerfile中创建一个用户,然后向具有这些uid
的用户授予权限。
例如:
# your dockerfile
RUN groupadd -g 799 appgroup
RUN useradd -u 799 -g appgroup shareduser
USER shareduser
然后,您只需要使用新创建的chown
uid
(在任何容器中或在主机上,uid
在容器和主机之间共享即可)chown -R 799:799 /volume/root/
:>
import pandas as pd
employee_id = [1,1,1,2,2,2,3,3,4,4]
action_code = ['TER','RET','RET','TER','ABC','DEF','RET','RET','PLA','TER']
action_reason = ['DEA','ABC','DEF','DEA','ABC','DEF','FGH','EFG','ABC','DEA']
concatenated_output = ['TER_DEA', 'RET_ABC', 'RET_DEF', 'TER_DEA', 'ABC_ABC', 'DEF_DEF', 'RET_FGH', 'RET_EFG', 'PLA_ABC', 'TER_DEA']
df = pd.DataFrame({
'Employee ID': employee_id,
'ActionCode': action_code,
'ActionReason': action_reason,
'ConcatenatedOutput': concatenated_output,
})