我正在使用Codeship来自动化多租户应用程序。
我的应用程序需要子域设置才能使用Selenium Web Driver运行验收测试。
所以,我需要为我的应用配置虚拟域。
例如,我需要以下虚拟域:
127.0.0.1 test.my-app.test
127.0.0.1 my-app.test
如果我不使用子域来请求我的应用程序,它不能按要求工作。
我在测试管道之前尝试了“安装程序命令”部分中的以下命令。
sudo echo '127.0.0.1 test.my-app.test' >> /etc/hosts
sudo echo '127.0.0.1 my-app.test' >> /etc/hosts
但是,它不起作用,因为我没有许可。错误消息是:
bash: /etc/hosts: Permission denied
你介意告诉我如何让它发挥作用吗?
先谢谢你了!
更新
我收到了Codeship团队的回复:
由于技术限制,这在我们的经典基础设施中是不可能的。您可以转到我们的Docker平台,它允许更多自定义您的构建环境。
我们需要使用Docker来解决这个问题
答案 0 :(得分:0)
您的重定向命令不会以root权限执行,这就是您获得权限被拒绝错误的原因。 您的命令意味着"在权限根中执行回显,然后重定向到/ etc / hosts文件"。
试试这个:
sudo sh -c 'echo "Your text" >> /path/to/file'
答案 1 :(得分:0)
出于安全考虑,我们不允许通过构建VM上的sudo
进行访问。
但是,您可以使用http://xip.io/或 lvh.me 等服务通过DNS名称访问您的应用程序。
$ nslookup codeship.lvh.me
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: codeship.lvh.me
Address: 127.0.0.1
lvh.me 会将对子域的任何请求解析为127.0.0.1
, xip.io 会提供更多功能,详情会在其主页上详细说明