Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Docker图像相同,但工作方式不同_Bash_Docker_Deployment_Bitbucket_Symfony - Fatal编程技术网

Bash Docker图像相同,但工作方式不同

Bash Docker图像相同,但工作方式不同,bash,docker,deployment,bitbucket,symfony,Bash,Docker,Deployment,Bitbucket,Symfony,我需要为我的symfony项目创建一个带有Bitbucket管道的部署系统。 如果要使用管道,则需要使用docker映像。 我已通过以下方式配置管道: image: laraedit/laraedit pipelines: branches: testing: - step: script: - rm -rf var/cache/ - composer install

我需要为我的symfony项目创建一个带有Bitbucket管道的部署系统。 如果要使用管道,则需要使用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
当我按下branch
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映像的配置相同)

那么,如果docker图像相同,我的docker图像本地和Bitbucket docker图像之间的差异是什么


我需要检查原因。/runtest.sh break,但它仅在Bitbucket docker图像中中断

您是否看到正在执行的命令的日志?您的测试是否可能依赖于正在本地运行的Web服务器或其他东西?是的,我看到了命令日志,但没有显示500错误的描述。本地和在线服务器内部都是相同的Web服务器也许为了调试,您可以在管道脚本中添加
tail var/log/error.log
之类的内容我已经尝试过了,但似乎不起作用,tail不向我显示任何行方法必须有所不同,您是在本地使用链接容器还是类似的东西?您是否有项目所需的从git中排除的文件?您可以尝试将repo克隆到一个新文件夹中(管道将使用这个文件夹),并在那里执行相同的调试过程。然后您可以确定您使用的是相同的文件