我正在尝试在 Azure 管道上的 ubuntu 容器作业上构建 Debian 包。这是我的设置:池:“AWSLinux”容器:映像:ubuntu:20.04但看起来 ubuntu:20.04 docker 映像确实……
我正在尝试在 Azure 管道上的 ubuntu 容器作业上构建 Debian 包。
这是我的设置:
pool: 'AWSLinux'
container:
image: ubuntu:20.04
但看起来 ubuntu:20.04 docker 镜像没有安装一些必需的工具。(SUDO,SVN,dpkg-architecture)
------Update and install packages------
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 6: sudo: command not found
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 7: sudo: command not found
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 8: sudo: command not found
------Initialize build environment------
/__w/_temp/40c7e2e3-ed1a-4d0f-a8da-5f7bf062cb90.sh: line 11: sudo: command not found
------Build DEBIAN------
/__w/16/DEBIAN/scripts/build.includes: line 78: dpkg-architecture: command not found
../../../scripts/build_template.includes: line 118: svnversion: command not found
但是在 Ubuntu vmImage 上构建时我没有遇到如下所示的缺少工具的问题:
pool:
vmImage: ubuntu-20.04
所以我的计划是将 Ubuntu Docker 镜像拉到与 vmImage:ubuntu 等效的某个地方,然后推送到我的私人 Harbor 注册表以在容器规范中引用它:
container:
image: registry:ubuntu2004
endpoint: private_harbor_connection
问题是哪里可以找到这个相当于 vmImage: ubuntu 的 Ubuntu Docker 镜像?有没有更好的解决方案?谢谢。
/////////////////////////////////////////////////////////// //////////////////////////////////
这是更新后的 yaml 文件:
trigger:
- master
pool: 'AWSLinux'
container:
image: ubuntu:20.04
options: "--name sample -v /usr/bin/docker:/tmp/docker:ro"
steps:
- checkout: self
lfs: true
path: HVD
clean: true
- script: |
/tmp/docker exec -t -u root sample mv /etc/sudoers /etc/sudoers.bak
/tmp/docker exec -t -u root sample apt-get -qq update
/tmp/docker exec -t -u root sample apt-get -qq install sudo
/tmp/docker exec -t -u root sample apt-get -qq install subversion
/tmp/docker exec -t -u root sample apt-get -qq install dpkg-dev
/tmp/docker exec -t -u root sample mv /etc/sudoers.bak /etc/sudoers
- script: |
cd HVD/Sources/Proprietary/hvd-client/
echo ------Update and install packages------
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y build-essential devscripts equivs git git-lfs
echo ------Initialize build environment------
sudo ./init-dev-hvd
echo ------Build HVD------
./build.tp
echo ------Build finshed------
但是第二个脚本在运行“更新和安装包”部分时卡在以下屏幕输出。
Setting up tzdata (2024a-0ubuntu0.20.04) ...
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------
Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.
1. Africa 4. Australia 7. Atlantic 10. Pacific 13. Etc
2. America 5. Arctic 8. Europe 11. SystemV
3. Antarctica 6. Asia 9. Indian 12. US
Geographic area:
##[error]The operation was canceled.
/////////////////////////////////////////////////////////// ///////////////////
这是 6 月 5 日更新的 yaml。
trigger:
- master
pool: 'AWSLinux'
container:
image: ubuntu:20.04
options: "--name sample -v /usr/bin/docker:/tmp/docker:ro"
steps:
- checkout: self
lfs: true
path: HVD
clean: true
- script: |
/tmp/docker exec -t -u root sample mv /etc/sudoers /etc/sudoers.bak
/tmp/docker exec -t -u root sample apt-get -qq update
/tmp/docker exec -t -u root sample apt-get -qq install sudo
/tmp/docker exec -t -u root sample apt-get -qq install subversion
/tmp/docker exec -t -u root sample apt-get -qq install dpkg-dev
/tmp/docker exec -t -u root sample mv /etc/sudoers.bak /etc/sudoers
- script: |
cd HVD/Sources/Proprietary/hvd-client/
echo ------Update and install packages------
sudo apt update -y
sudo apt upgrade -y
sudo DEBIAN_FRONTEND=noninteractive apt install -y build-essential devscripts equivs git git-lfs
echo ------Initialize build environment------
sudo ./init-dev-hvd
echo ------Build HVD------
./build.tp
echo ------Build finshed------
脚本在步骤:\'./build.tp\' 失败,并出现以下错误:
------Build HVD------
No packages directory, rebuilding...
I: Cleaning hvd-client
dh clean
All build files have been removed.
I: Checking external version for hvd-client
I: This is not an external
I: Copying hvd-client
I: Checking source requirements for hvd-client
I: Checking build requirements for hvd-client
dpkg-checkbuilddeps: error: Unmet build dependencies: lbzip2 cmake qt5-default libssl-dev libpcsclite-dev libpng-dev libpulse-dev libxrandr-dev libxkbfile-dev libxcursor-dev libxt-dev chrpath python3-pip python3-venv libpython3-dev libxcb-xinerama0 libfreetype6-dev libxft-dev libqt5x11extras5-dev libxinerama-dev libudev-dev upx wmctrl libxmu-headers libxmu-dev libglib2.0-dev freerdp2-dev liblz4-tool cython3 clang-tidy-11 libuvc-dev libcups2-dev qtmultimedia5-dev qtpositioning5-dev libxext-dev libxcomposite-dev libxdamage-dev libxfixes-dev libxtst-dev libavcodec-dev libavutil-dev libicu-dev libgbm-dev libdrm-dev libjson-c-dev libopencv-dev libcurl4-openssl-dev
通过 alr 构建 sdlada 没问题,但运行步骤失败($ alr run)。sdlada_2.5.20_cd53c280$ alr run 正在运行 sdlada=2.5.20 的预构建操作... make:on...
构建 sdlada 没问题,通过 alr 也可以,但是运行步骤失败($alr run)。
sdlada_2.5.20_cd53c280$ alr run
Running pre-build actions for sdlada=2.5.20...
make : on entre dans le répertoire « /media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280/build/gnat »
mkdir -p gen/src/
make : on quitte le répertoire « /media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280/build/gnat »
Building sdlada=2.5.20/build/gnat/sdlada.gpr...
Build finished successfully in 0.47 seconds.
error: Executable "sdlada" not found
dubois@db:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/sdlada_2.5.20_cd53c280
$
-第二个问题是“with sdlada”失败:
$ ./gnatmake -P unit_tests.gpr
--------------------------------
Compilation du unit_tests
--------------------------------
Compile
[Ada] unit_tests.adb
unit_tests.adb:28:06: error: file "aunit.ads" not found
unit_tests.adb:29:06: error: file "aunit.ads" not found
unit_tests.adb:30:06: error: file "aunit.ads" not found
unit_tests.adb:30:06: error: "Unit_Tests (body)" depends on "Sdl_Suites (spec)"
unit_tests.adb:30:06: error: "Sdl_Suites (spec)" depends on "Aunit (spec)"
gprbuild: *** compilation phase failed
$
with unit_tests.adb as:
with AUnit.Run;
with AUnit.Reporter.Text;
with SDL_Suites;
procedure Unit_Tests is
etc..
谢谢马克