使用 github actions 完成服务器 docker 登录报错
name: Deploy app to server
on: [push]
jobs:
deploy-and-restart:
runs-on: ubuntu-latest
steps:
# checkout 代码
- uses: actions/checkout@v2
# 创建 env 文件, 写入项目需要的数据
- name: "create env file"
run: |
touch .env
echo ALC_ACCESS_KEY=${{ secrets.ALC_ACCESS_KEY }} >> .env
echo ALC_SECRET_KEY=${{ secrets.ALC_SECRET_KEY }} >> .env
echo GITEE_CID=${{ secrets.GITEE_CID }} >> .env
echo GITEE_SECRET=${{ secrets.GITEE_SECRET }} >> .env
echo JWT_SECRET=${{ secrets.JWT_SECRET }} >> .env
echo MONGO_INITDB_ROOT_USERNAME=${{ secrets.MONGO_INITDB_ROOT_USERNAME }} >> .env
echo MONGO_INITDB_ROOT_PASSWORD=${{ secrets.MONGO_INITDB_ROOT_PASSWORD }} >> .env
echo MONGO_DB_USERNAME=${{ secrets.MONGO_DB_USERNAME }} >> .env
echo MONGO_DB_PASSWORD=${{ secrets.MONGO_DB_PASSWORD }} >> .env
echo REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }} >> .env
echo PING_ENV=${{ secrets.PING_ENV }} >> .env
# 拷贝必须文件到一个文件夹, 包括 .env, docker-compose-online.yml. mongo-entrypoint
- name: "copy necessary files in to one folder"
run: |
mkdir lego-backend
cp .env docker-compose-online.yml lego-backend
cp -r mongo-entrypoint lego-backend
ls -a lego-backend
# 通过 acp 拷贝必要文件到服务器
- name: "copy lego-backend via scp"
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.SSH_USER }}
password: ${{ secrets.SSH_PWD }}
source: "lego-backend"
target: "~"
# 通过 ssh 登录然后重启服务
- name: 'executing ssh and resetart docker'
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.SSH_USER }}
password: ${{ secrets.SSH_PWD }}
script_stop: true
# 登录阿里云 ACR
# 停止服务 docker-compose down
# 启动服务 docker-compose up -d
# 清理文件, .env 等
script: |
docker login --username=${{ secrets.ACR_USERNAME }} --password=${{ secrets.ACR_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
cd ~/lego-backend/
docker-compose -f docker-compose-online.yml down
docker-compose -f docker-compose-online.yml up -d
rm -rf .env
docker logout registry.cn-hangzhou.aliyuncs.com
正在回答
同学你好
建议你这样调试一下,先抛开 github actions
直接登录服务器,手动的运行对应的命令(docker login),看看是否能登录成功,看看会有什么问题?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星