我正试图构建一个管道,将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的分发版。因此,必须使用apt
或apt-get
作为包管理工具。
如果要使用apk
(alpine Package Keeper(,则必须使用基于alpine的节点容器。
示例image: node:lts-alpine
NodeJS docker容器是使用各种版本和底层Linux发行版构建的。请单击链接查看它们,然后根据您的要求选择您需要的内容。