我一直在尝试构建一个管道来测试我在 bitbucket 中的部署,但我不断遇到这个问题
+ apt-get update && \ apt-get install -y \ fonts-liberation \ libasound2 \ libatk-bridge2.0-0 \ libatk1.0-0 \ libatspi2.0-0 \ libcups2 \ libdbus-1-3 \ libdrm2 \ libgbm1 \ libgtk-3-0 \ libnspr4 \ libnss3 \ libu2f-udev \ libvulkan1 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxkbcommon0 \ libxrandr2 \ xdg-utils && \ rm -rf /var/lib/apt/lists/*
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 http://security.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [271 kB]
Get:5 http://deb.debian.org/debian bullseye/main amd64 Packages [8068 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [18.8 kB]
Fetched 8565 kB in 1s (6690 kB/s)
Reading package lists...
bash: apt-get: command not found
做了一些研究,问题可能出在我使用的图像中,但是在 docker 中使用相同的图像效果很好,所以我真的不知道问题出在哪里
这是我的 yml 文件
image: ruby:3.0.3
pipelines:
default:
- step:
name: Run minitests
script:
# Dependencies
- apt-get update && \
apt-get install -y \
fonts-liberation \
libasound2 \
libatk-bridge2.0-0 \
libatk1.0-0 \
libatspi2.0-0 \
libcups2 \
libdbus-1-3 \
libdrm2 \
libgbm1 \
libgtk-3-0 \
libnspr4 \
libnss3 \
libu2f-udev \
libvulkan1 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxkbcommon0 \
libxrandr2 \
xdg-utils && \
rm -rf /var/lib/apt/lists/*
# Configure chrome and chromedriver
- dpkg -i driver/117.0.5938.132/google-chrome.deb
- export CHROMEDRIVER_PATH=driver/117.0.5938.132/
- export PATH="${CHROMEDRIVER_PATH}:${PATH}"
- export BROWSER=:chrome
- export LOAD=eager
- gem install bundler
- bundle install
- rake runner:run_tests
欢迎任何帮助
我尝试使用 sudo ,这实际上是同样的问题,还尝试使用另一个数据包管理器并得到相同的结果
您可以去掉脚本行末尾的反斜杠。
反斜杠用于声明由 Bash 直接解释的多行命令。
但是在 YAML 中您所看到的并不是您所得到的。多行被转置为单行,反斜杠在应为转义字符时被解释为常规字符。例如以下 YAML:
script:
- apt-get update \
&& apt-get install foo
将有以下 JSON 输出:
{
"script": [
"apt-get update \\ && apt-get install foo"
]
}