如何在Docker中转换内部容器与外部容器不同的文件路径

我最近开始使用DeployHQ进行原子(零停机)部署,但是遇到了一个主要问题。

我的生产服务器使用Docker(特别是Laradock),这意味着文件位置在容器外部具有一个路径,而在容器内部 中具有不同的路径(对于同一文件)。

所以我的“ Before Release Link” SSH命令不起作用:

cd /apps/laradock/ && docker-compose exec workspace bash -c "cd /var/www/example_project/current/; /var/www/example_project/shared/add_bbucket_key.sh && cd /var/www/example_project/current/;  composer install --no-dev; npm install --no-dev; npm run prod; "

因为不是使用/var/www/example_project/current/,而是使用了DeployHQ变量%release_path%(如果命令全部成功运行,DeployHQ将把current符号链接到该路径)。

但是据DeployHQ所知,Docker不存在,因此它认为发布路径类似于/apps/example_project/releases/20191116191147/而不是/var/www/example_project/releases/20191116191147/

我如何实现我的目标?有没有办法使用docker-compose(或其他方式)来处理传递到容器外路径位置并将其转换为容器内路径位置的方法?

zhshyp 回答:如何在Docker中转换内部容器与外部容器不同的文件路径

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3086222.html

大家都在问