Sat*_*v93 11 ssh command docker github-actions
我正在尝试在由 github 操作创建的 ssh 连接中运行 docker 命令。我什至在工作流程中使用了提及。这是我的工作流程
\n# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node\n# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions\n\nname: Node.js CI\n\non:\n pull_request:\n branches: ['main']\n\nenv:\n REGISTRY: 'ghcr.io/testing/api-gateway'\n IMAGE_NAME: ${{ format('{0}-{1}', github.event.repository.name, github.sha) }}\n USERNAME: ${{ secrets.USERNAME }}\n DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}\n\njobs:\n build:\n runs-on: ubuntu-latest\n\n strategy:\n matrix:\n node-version: [16.x]\n\n steps:\n - uses: actions/checkout@v3\n\n - name: Use Node.js ${{ matrix.node-version }}\n uses: actions/setup-node@v3\n with:\n node-version: ${{ matrix.node-version }}\n cache: 'npm'\n - run: npm install\n - run: npm run build\n\n - name: Build & Push docker\n run: docker build -t $REGISTRY:$IMAGE_NAME .\n\n - name: Login to github package repository\n run: echo $DOCKER_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin\n\n - name: Push docker image\n run: docker push $REGISTRY:$IMAGE_NAME\n\n deploy:\n runs-on: ubuntu-latest\n needs: build\n\n steps:\n - name: Deploy to Digital Ocean droplet via SSH action\n uses: garygrossgarten/github-action-ssh@release\n with:\n host: ${{ secrets.DO_HOST }}\n username: ${{ secrets.DO_USER }}\n privateKey: ${{ secrets.DO_KEY }}\n passphrase: ${{ secrets.DO_PASSPHRASE }}\n command: |\n echo $DOCKER_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin\n docker pull $REGISTRY:$IMAGE_NAME\n docker run -p 3000:3000 $REGISTRY:$IMAGE_NAME\n
Run Code Online (Sandbox Code Playgroud)\n但当我运行工作流程时,出现以下错误。
\nRun garygrossgarten/github-action-ssh@release\nEstablishing a SSH connection to ***.\nusing provided private key\n(node:1514) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.\n Connected to ***.\nExecuting command: echo $DOCKER_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin\ndocker pull $REGISTRY:$IMAGE_NAME\ndocker run -p 3000:3000 $REGISTRY:$IMAGE_NAME\nError: Cannot perform an interactive login from a non-TTY device\n\ninvalid reference format\n\ndocker: invalid reference format.\nSee 'docker run --help'.\n\n\xe2\x9a\xa0\xef\xb8\x8f An error happened executing the command echo $DOCKER_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin\ndocker pull $REGISTRY:$IMAGE_NAME\ndocker run -p 3000:3000 $REGISTRY:$IMAGE_NAME. Command exited with code 125\nError: Command exited with code 125\n 1: 0xa1a640 node::Abort() [/home/runner/runners/2.296.0/externals/node12/bin/node]\n 2: 0xa90649 [/home/runner/runners/2.296.0/externals/node12/bin/node]\n 3: 0xc06599 [/home/runner/runners/2.296.0/externals/node12/bin/node]\n 4: 0xc08387 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/home/runner/runners/2.296.0/externals/node12/bin/node]\n 5: 0x140dd19 [/home/runner/runners/2.296.0/externals/node12/bin/node]\n
Run Code Online (Sandbox Code Playgroud)\n我正在寻找一种解决方案,但找不到合适的解决方案。对此最好的解决方案是什么?
\nGui*_*urd 15
根据有关无法从非 TTY 设备消息执行交互式登录的其他线程:
当您使用--password-stdin时, docker login会打印此错误消息,但实际上并不将密码发送到命令的标准输入。
因此,该变量似乎$DOCKER_TOKEN
为空。
您可以尝试使用${{ env.DOCKER_TOKEN}}
, 或添加env: DOCKER_TOKEN: ${{ env.DOCKER_TOKEN }}
到部署作业的最后一步。
像这样的东西:
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to Digital Ocean droplet via SSH action
uses: garygrossgarten/github-action-ssh@release
env:
DOCKER_TOKEN: ${{ env.DOCKER_TOKEN }}
with:
host: ${{ secrets.DO_HOST }}
username: ${{ secrets.DO_USER }}
privateKey: ${{ secrets.DO_KEY }}
passphrase: ${{ secrets.DO_PASSPHRASE }}
command: |
echo $DOCKER_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin
# or using directly ${{ env.DOCKER_TOKEN}} instead of $DOCKER_TOKEN
docker pull $REGISTRY:$IMAGE_NAME
docker run -p 3000:3000 $REGISTRY:$IMAGE_NAME
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22533 次 |
最近记录: |