我们在Ubuntu 16.04上使用ECS Agent容器。服务'容器都正确启动并在内部具有正确的文件权限;每个容器的Dockerfile
创建一个名为app
的用户,以提高安全性。
在此过程中,容器内的文件权限更改为root:root
,导致应用程序停止运行。
有没有人遇到过这个?
这是创建ECS代理的代码。这是一个厨师食谱。下面的任何一个是否适合任何人?
*注意:在ECS优化实例(当然是基于Amazon linux)上安装了相同的服务集,并且一切正常。所以它不是与应用相关的问题。我们被迫被安全团队转移到Ubuntu。
platform = node['platform']
env = node.chef_environment
docker_image 'amazon/amazon-ecs-agent'
ENVIRONMENT = [
'ECS_LOGFILE=/log/ecs-agent.log',
'ECS_DATADIR=/data/',
'ECS_ENABLE_TASK_IAM_ROLE=true',
'ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true',
'ECS_CLUSTER=devops2',
'ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","syslog","awslogs"]',
'ECS_AGENT_CONFIG_FILE_PATH=/etc/ecs/ecs.config',
'ECS_ENGINE_AUTH_TYPE=dockercfg',
"ECS_ENGINE_AUTH_DATA=#{node['common']['ECS_ENGINE_AUTH_DATA']}"
]
VOLUMES = [
'/var/run/docker.sock:/var/run/docker.sock',
'/var/log/ecs:/log',
'/var/lib/ecs/data:/data'
]
# start the container and map it to port 8484
docker_container 'amazon-ecs-agent' do
repo 'amazon/amazon-ecs-agent'
tag 'latest'
network_mode 'host'
restart_policy 'on-failure'
env ENVIRONMENT
volumes VOLUMES
action :run_if_missing
end