ter*_*reb 6 linux amazon-ec2 amazon-web-services amazon-elastic-beanstalk
我在Elastic Beanstalk上设置Web文件夹的权限时遇到了麻烦.我在一个实例中使用自定义docker镜像运行多个容器:apache-php,mysql,memcached等.对于容器"apache-php",我将我的yii2应用程序的文件夹映射到/ var/www/html /.
当我手动创建一个包并通过Elastic Beanstalk控制台上传/部署时,我确实拥有该文件夹的正确权限,一切正常.
现在,当我使用"eb deploy"部署应用程序时,它会丢弃所有权限,并且我收到服务器错误并且"Web进程无法写入该目录:/ var/www/html/backend/web/assets"在日志中.
我可以通过ssh连接并手动设置必要的权限,但确定这不方便,因为每次重新部署应用程序时都需要这样做.
那么,我的问题是在Elastic Beanstalk上为特定容器中的特定文件夹自动设置权限的最佳方法是什么?
也许,我可以使用.ebextensions,但我没有找到如何为特定容器运行"container_commands".
Ton*_*cas 12
/var/app/ondeck/var/app/ondeck/
.ebextensions/*.config,那么它是正确的位置.但请记住,除非您使用某种方法测试预配置,否则无论是否需要,这些命令都会在您部署时运行.
container_commands:
08user_config:
test: test ! -f /opt/elasticbeanstalk/.preconfig-complete
command: |
echo "jail-me" > /home/ec2-user/.userfile
09writable_dirs:
command: |
chmod -R 770 /var/app/ondeck/backend/web/assets
chmod -R 770 /var/app/ondeck/[path]
99complete:
command: |
touch /opt/elasticbeanstalk/.preconfig-complete
files:
"/etc/profile.d/myalias.sh":
mode: "000644"
owner: root
group: root
content: |
alias webroot='cd /var/www/html/backend/web; ls -al --color;'
echo " ========== "
echo " The whole point of Elastic Beanstalk is that you shouldn't need to SSH into the server. "
echo " ========== "
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8600 次 |
| 最近记录: |