1

我正在尝试为旨在部署在 nanobox.io 上的基于 php 的(Laravel-Lumen)应用程序设置 bitbucket 管道。我希望此管道在提交代码更改后立即部署我的应用程序。

我的 bitbucket-pipelines.yml 看起来像这样

image: php:7.1.29

pipelines:
  branches:
    staging:
    - step:
        name: Publish to staging version
        deployment: staging
        caches:
          - composer
        script:
          - apt-get update && apt-get install -y unzip
          - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
          - composer install
#          - vendor/bin/phpunit
          - bash -c "$(curl -fsSL https://s3.amazonaws.com/tools.nanobox.io/bootstrap/ci.sh)"
          - nanobox deploy

这给出了以下错误

+ nanobox deploy
Failed to validate provider - missing docker - exec: "docker": executable file not found in $PATH
Using nanobox with native requires tools that appear to not be available on your system.
docker
View these requirements at docs.nanobox.io/install

然后我关注了这个页面并改变了倒数第二行看起来像这样

sudo bash -c "$(curl -fsSL https://s3.amazonaws.com/tools.nanobox.io/bootstrap/ci.sh)"

完成后,我收到以下错误

+ sudo bash -c "$(curl -fsSL https://s3.amazonaws.com/tools.nanobox.io/bootstrap/ci.sh)"
bash: sudo: command not found

我在这里用完了技巧,我也没有这方面的经验。很感谢任何形式的帮助。

4

1 回答 1

0

首先,您不能sudo在管道中使用,但这可能与这里无关。问题是 nanobox cli 不想执行未安装的 docker。您应该为您的步骤启用 docker 服务。

image: php:7.1.29

pipelines:
  branches:
    staging:
      - step:
          name: Publish to staging version
          deployment: staging

          # Enable docker service
          services:
            - docker
          caches:
            - composer
          script:
            - docker version

您可能也不想查看 Pipelines 文档:在 Bitbucket Pipelines 中运行 Docker 命令

于 2019-10-10T09:25:13.923 回答