昨天我有正在运行的管道,突然它停止工作,并显示以下错误:

bash: ssh: command not found

管道第二步是:apt-get update && apt-get install -y Openssh-client

它在命中抛出404的源列表时失败,因此Openssh-Client没有安装:

Pipeline logs

到目前为止,我已经try 升级到较新的PHP映像,它抛出了与404完全相同的错误,

当前的php图片php:7.3.18-apache一直在使用,直到昨天才停止工作,我没有太多的空间go 寻找更高的php版本.

文档文件:

FROM php:7.3.18-apache

ARG PHP_OPENSSL=yes

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libpcre3-dev \
        curl \
        cron \
        supervisor \
        zip \
        libzip-dev \
        libicu-dev \
        libmagickwand-dev \
        inkscape \
        && docker-php-ext-install bcmath sockets \
        && docker-php-ext-configure intl \
          && docker-php-ext-install intl \
    && docker-php-ext-configure gd \
    && docker-php-ext-configure zip --with-libzip \
    && docker-php-ext-install -j$(nproc) gd gettext json mbstring pdo_mysql pcntl zip

RUN printf "\n" | pecl install imagick
RUN docker-php-ext-enable imagick

RUN a2enmod rewrite

ARG PSR_VERSION=0.7.0
ARG PHALCON_VERSION=4.0.2
ARG PHALCON_EXT_PATH=php7/64bits

RUN set -xe && \
        # Download PSR, see https://github.com/jbboehr/php-psr
        curl -LO https://github.com/jbboehr/php-psr/archive/v${PSR_VERSION}.tar.gz && \
        tar xzf ${PWD}/v${PSR_VERSION}.tar.gz && \
        # Download Phalcon
        curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
        tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
        docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) \
            ${PWD}/php-psr-${PSR_VERSION} \
            ${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} \
        && \
        # Remove all temp files
        rm -r \
            ${PWD}/v${PSR_VERSION}.tar.gz \
            ${PWD}/php-psr-${PSR_VERSION} \
            ${PWD}/v${PHALCON_VERSION}.tar.gz \
            ${PWD}/cphalcon-${PHALCON_VERSION} \
        && \
        php -m

# install phalcon dev tools
ARG DEV_TOOL_VERSION=4.0.0

RUN echo ">>> Downloading phalcon.phar ..." && \
                curl -LOs https://github.com/phalcon/phalcon-devtools/releases/download/v${DEV_TOOL_VERSION}/phalcon.phar && \
                chmod +x phalcon.phar && \
                mv phalcon.phar /usr/local/bin/phalcon && \
                echo ">>> Testing 'phalcon --version' command ..." && \
                phalcon --version

#install composer
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php && \
    # install
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
    #verify
    composer -V

COPY ./supervisor/* /etc/supervisor/conf.d

#Install xdebug
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug \
    && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_handler=dbgp" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.idekey=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

COPY ./ssl/ /etc/ssl/certs/
COPY ./sites-available/* /etc/apache2/sites-available/

RUN a2ensite default-ssl
RUN a2enmod ssl

RUN apt-get install -y --no-install-recommends apt-utils
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt-get install -y nodejs

#install yarn
# RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
# RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
# RUN apt update && apt install -y yarn
RUN npm install -g yarn

ENV REDIS_VERSION 5.2.2

RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$REDIS_VERSION.tar.gz \
    && tar xfz /tmp/redis.tar.gz \
    && rm -r /tmp/redis.tar.gz \
    && mkdir -p /usr/src/php/ext \
    && mv phpredis-* /usr/src/php/ext/redis

RUN docker-php-ext-install redis

COPY ./php.ini /usr/local/etc/php/
COPY ./entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT /entrypoint.sh

和BitBucket-Pipelines.yml:

image: php:7.3.3
pipelines:
  branches:
    master:
      - step:
          name: Main deploy process
          deployment: production
          caches:
            - composer
            - node
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
            - echo "Main deploy process" && ssh -tt $TABACK_SSH_USER@$PROD_SERVER "rm -rf $RELEASE_DIR_REMOVE && mkdir $RELEASE_DIR_REMOVE && cd $RELEASE_DIR_REMOVE && git clone --branch $BITBUCKET_BRANCH https://$Cred/trustanalytica/trustanalytica.git $RELEASE_DIR_REMOVE"
            - echo "Copy env files" && ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cp $APP_ROOT/env.$BITBUCKET_BRANCH $RELEASE_DIR_REMOVE/app/config/.env" #&& cp $APP_ROOT/env.$BITBUCKET_BRANCH.client $RELEASE_DIR_REMOVE/react/client/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.server $RELEASE_DIR_REMOVE/react/server/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.messenger $RELEASE_DIR_REMOVE/react/messenger/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.badge $RELEASE_DIR_REMOVE/react/widgets/badge/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.review $RELEASE_DIR_REMOVE/react/widgets/review/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.sadmin.catalog $RELEASE_DIR_REMOVE/react/superadmin/catalog-module/.env
            - echo "Install via composer" && ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cd $RELEASE_DIR_REMOVE && composer install"
      - parallel:
          - step:
              name: Checking everything is ok
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cd $APP_ROOT && ./check_build.sh"
          - step:
              name: Creating cache files...
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cd $APP_ROOT && ./cache_folders.sh"
          - step:
              name: Migrations magick
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cd $RELEASE_DIR_REMOVE && vendor/bin/phinx migrate"
      - step:
          name: Re-link build
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            #[ ! -d /home/taback/old`date +%m%d%H%M%S` ] && mkdir -p /home/taback/old`date +%m%d%H%M%S` && cp -a /home/taback/current/ /home/taback/old`date +%m%d%H%M%S`/ && rm -rf /home/taback/current/ &&
            - ssh -tt $TABACK_SSH_USER@$PROD_SERVER "rm -rf $RELEASE_DIR && mv -f $RELEASE_DIR_REMOVE $RELEASE_DIR"
            - echo "Deploying Modules" && ssh -tt $TABACK_SSH_USER@$PROD_SERVER "cd $RELEASE_DIR && ./deploy_modules.sh"
      - step:
          name: Restart everything
          caches:
            - composer
            - node
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
            - ssh -tt $TABACK_SSH_USER@$PROD_SERVER "sudo supervisorctl restart all && sudo systemctl restart php7.4-fpm && sudo systemctl restart nginx"

    development:
      - step:
          name: Main deploy process
          deployment: development
          caches:
            - composer
            - node
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
            - echo "Deploy to dev server" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "rm -rf $RELEASE_DIR_REMOVE && mkdir $RELEASE_DIR_REMOVE && cd $RELEASE_DIR_REMOVE && git clone --branch $BITBUCKET_BRANCH https://$Cred/trustanalytica/trustanalytica.git $RELEASE_DIR_REMOVE"
            - echo "Copy env files" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cp $APP_ROOT/env.$BITBUCKET_BRANCH $RELEASE_DIR_REMOVE/app/config/.env" #&& cp $APP_ROOT/env.$BITBUCKET_BRANCH.client $RELEASE_DIR_REMOVE/react/client/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.server $RELEASE_DIR_REMOVE/react/server/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.messenger $RELEASE_DIR_REMOVE/react/messenger/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.badge $RELEASE_DIR_REMOVE/react/widgets/badge/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.review $RELEASE_DIR_REMOVE/react/widgets/review/.env && cp $APP_ROOT/env.$BITBUCKET_BRANCH.sadmin.catalog $RELEASE_DIR_REMOVE/react/superadmin/catalog-module/.env
            - echo "Install via composer" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $RELEASE_DIR_REMOVE && composer install"
      - parallel:
          - step:
              name: Checking everything is ok
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $APP_ROOT && ./check_build.sh"
          - step:
              name: Creating cache files...
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $APP_ROOT && ./cache_folders.sh"
          - step:
              name: Migrations magick
              caches:
                - composer
                - node
              script:
                - apt-get update && apt-get install -y openssh-client
                - apt-get update && apt-get install -y unzip rsync wget
                - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
                - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $RELEASE_DIR_REMOVE && vendor/bin/phinx migrate"
      - step:
          name: Re-link build
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "rm -rf $RELEASE_DIR && mv -f $RELEASE_DIR_REMOVE $RELEASE_DIR"
            - echo "Deploying Modules" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $RELEASE_DIR && ./deploy_modules.sh"
      - step:
          name: Restart everything
          caches:
            - composer
            - node
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "sudo supervisorctl restart all && sudo systemctl restart php7.4-fpm && sudo systemctl restart nginx"

    "version-*":
      - step:
          name: Deploying Sprint Updates
          deployment: sprint-version
          caches:
            - composer
            - node
          script:
            - apt-get update && apt-get install -y openssh-client
            - apt-get update && apt-get install -y unzip rsync wget
            - BRANCH_FOLDER=${BITBUCKET_BRANCH//./}
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer self-update --2
            - echo "Git prepare version branch" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $VERSIONS_DIR/$BRANCH_FOLDER/trustanalytica && git fetch origin $BITBUCKET_BRANCH && git checkout $BITBUCKET_BRANCH && git pull origin $BITBUCKET_BRANCH"
            - echo "Install via composer" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $VERSIONS_DIR/$BRANCH_FOLDER/trustanalytica && composer install"
            - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $VERSIONS_DIR/$BRANCH_FOLDER/trustanalytica && vendor/bin/phinx migrate"   
            - echo "Deploying Modules" && ssh -tt $TABACK_SSH_USER@$DEV_SERVER "cd $VERSIONS_DIR/$BRANCH_FOLDER && ./deploy_modules.sh"
            - ssh -tt $TABACK_SSH_USER@$DEV_SERVER "sudo supervisorctl restart all && sudo systemctl restart php7.4-fpm && sudo systemctl restart nginx"

OS version : Debian GNU/Linux 10

推荐答案

供参考:

问题是实际的404(而不是包名中的打字错误).路易斯·埃雷拉在1中指出了来自安斯加的信息2:

stretchstretch-调试和stretch-建议更新suites现在已经 也是在archive.debian.org进口的.仍然感兴趣的人 这些应用程序应该会更新它们的Soures.list.

我计划在大约一个月内将套房从主档案馆中移除 (2023-04-23 or later).[我的亮点]

更新容器中的Soures.list.

Please see the earlier and more canonical Q&A resource on site.

进一步注意事项

随着最近的一个 fresh 的基础集装箱拉今天为docker.io/php:7.3.18-apache,我没有这个问题.注意BitBucket管道中的任何缓存,也许可以考虑简化构建管道使用您的产品容器构建容器,这样您就不需要一直运行apt-get(在容器构建和管道脚本中).

看到你用Atlassian BitBucket管道插件运行一个PHP项目,如果你想让事情运行和测试更舒服一些,看看这个local Bitbucket Pipelines Runner,你可以直接从你的PHP项目运行,如果Docker可用的话.

它也有像自动运行的docker构建脚本这样的好东西,例如pipelines/lib/container/.

Php相关问答推荐

在PHP中替换数组中的文本并同时使用其他函数

PHP中冒号的奇怪用例

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

在Laravel中为表添加前缀,以将它们逻辑地分组

PHP空数组定义与开始或结束逗号

在冲突和几何上插入的Postgres参数化查询在PHP中不起作用

HTTPPost请求在从php脚本调用时返回404,但在从node.js脚本调用时有效.终结点有效

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

标签打印机的 CSS

多个产品类别 Select 自定义 WooCommerce 插件设置页面

为什么 php 只能在我的 Nginx Web 服务器的某些目录中工作?

在 php 中生成 MAC ISO/IEC 9797-1

在PHP WordPress插件中使用变量连接路径时的问题解决方法

PHP使用三元运算符进行null合并(再次)

在WooCommerce中显示 checkout 的高级自定义字段(Advanced Custom Fields)并保存其值

php/html OnSubmit 禁用输入类型提交未给出预期结果

yii2 sql迁移覆盖新更改的记录

在 WordPress 中使用 $wpdb 运行 MySQL 事务是否安全?

按数字然后按字符串对关联 PHP 数组进行排序

使用 v-for 的存储链接中的 Img src 在 Laravel vuejs 中不起作用