我需要为我的symfony项目创建一个带Bitbucket管道的部署系统。 如果要使用Pipeline,则需要使用docker镜像。 我以这种方式配置我的管道:
image: laraedit/laraedit
pipelines:
branches:
testing:
- step:
script:
- rm -rf var/cache/
- composer install
- mkdir -p ~/.ssh
- cat my_known_hosts >> ~/.ssh/known_hosts
- (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
- cp app/config/parameters.yml.test.dist app/config/parameters.yml
- chmod -R 777 var/
- export TERM=xterm-256color
- ./runtest.sh
# - many other commands
当我推动分支testing
管道时,启动并在./runtest.sh内部出现错误500(我可以检索,因为它是bitbucket的docker)。
在./runtest.sh里面有这个命令来启动我的应用程序的测试:
rm -rf var/cache/tests/
bin/console doctrine:database:drop --env=test
bin/console doctrine:database:create --env=test
bin/console doctrine:schema:update --force --env=test
bin/console doctrine:fixtures:load --no-interaction --env=test
./vendor/bin/phpunit
所以我检查了Bitbucket文档,我发现如何使用此命令在本地测试docker镜像:
docker run -it --volume=/Users/my_username/my_site/:/localDebugRepo --workdir="/localDebugRepo" --memory=4g --entrypoint=/bin/bash laraedit/laraedit
我在本地尝试过,当我使用bash进入docker镜像时,我已经将所有脚本命令写入管道内:
rm -rf var/cache/
composer install
mkdir -p ~/.ssh
cat my_known_hosts >> ~/.ssh/known_hosts
(umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
cp app/config/parameters.yml.test.dist app/config/parameters.yml
chmod -R 777 var/
export TERM=xterm-256color
./runtest.sh
魔法测试通过! 但是同样的Bitbucket docker图像,我预计./runtest.sh将被破坏以检查500内部错误服务器,但没有错误,./runtest.sh通过,并且在我的docker镜像本地内都是好的(相同的配置bitbucket docker image)。
如果docker图像相同,那么我的docker image local和Bitbucket docker image之间的差异是什么?
我需要检查为什么./runtest.sh中断,但它只在Bitbucket docker image中打破