AntDeploy这个东西非常好用,可以直接将.NET CORE的程序直接发布到docker,刚好我有这个需求,但是程序默认给的账户示例是root账户的,需要对于需要分散开发的同学来说,这个东西风险有点大,说不定就泄露密码了。
我尝试使用非管理员账户进行操作,发现会在Start Copy Files From ...
这个步骤和sudo docker
这个步骤提示错误,提示需要使用terminal或者-S来输入密码。
输入是不可能输入的,自动化的东西嘛。仔细想想,可以将特定命令添加到sudo的无密码清单里面就可以了。以下是完整步骤,CENTOS 8上测试通过。
添加docker用户
首先是需要添加docker的用户的,你需要在root账号下,先执行:
adduser dockeruser #添加用户
passwd dockeruser #修改密码
groupadd docker #添加docker用户组
usermod -a docker dockeruser #将用户添加到docker用户组
systemctl restart docker #重启docker
这样就添加了dockeruser用户对docker的访问权限。
添加antdeploy权限
只要能够跳过cp和docker的sudo密码提示就可以了,很简单。还是在root权限下,执行:
visudo
dockeruser ALL=NOPASSWD:/bin/cp
dockeruser ALL=NOPASSWD:/usr/bin/docker
保存即可。
验证
切换到dockeruser下,执行docker ps应该能看到正常的运行状态。使用AntDeploy部署,成功。