为什么我不能在Gitlab管道中使用apk包管理器



我正试图构建一个管道,将ssh连接到我的服务器,并执行bash脚本。但当我执行管道时,它会声明:bash: line 129: apk: command not found为什么?我已经指定在我的默认节点图像上使用alpine

我的runner被配置为shell执行程序

image: node:16
build:
only:
- main
script:
- docker build --file Dockerfile --tag $IMAGE_NAME .
push_to_dockerhub:
only:
- main
script:
- docker login --username $DOCKERHUB_USERNAME --password $DOCKERHUB_PASSWORD
- docker push $IMAGE_NAME
deploy:
image: alpine:3.14
only:
- main
before_script:
- apk add openssh-client
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
script:
- ssh myusername@$IP_ADDRESS -p 3000 "/home/myusername/deploy.sh && exit"

我需要能够在这个管道上使用apk来添加openssh客户端,因此,建立一个ssh连接

您从docker hub获得的NodeJS默认版本是基于Debian的分发版。因此,必须使用aptapt-get作为包管理工具。

如果要使用apk(alpine Package Keeper(,则必须使用基于alpine的节点容器。

示例image: node:lts-alpine

NodeJS docker容器是使用各种版本和底层Linux发行版构建的。请单击链接查看它们,然后根据您的要求选择您需要的内容。

最新更新