name: Docker Deploy on: push: branches: - main # 监听main分支的push事件 - v* jobs: build-and-deploy: runs-on: demo env: HOST_PORT: 8080 DOMAIN: "${{vars.DOMAIN}}" CTN_NAME: "ctn-pms-demo" IMG_NAME: "${{ github.repository }}:${{ github.ref_name }}" steps: - name: install nodejs&golang and set proxy run: | sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk add npm go docker # tzdata npm config set registry https://npm.aliyun.com # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # echo "Asia/Shanghai" > /etc/timezone # apk del tzdata echo "-----============$CTN_NAME=========--------" # - name: Set up Go # uses: actions/setup-go@v4 # with: # go-version: '1.22' - uses: http://${{vars.DOMAIN}}:5678/actions/checkout@v4 - name: Build Image run: | docker stop $CTN_NAME || true docker rm $CTN_NAME || true docker rmi $IMG_NAME || true docker build -t $IMG_NAME . --file Dockerfile # - name: Login to Docker Hub # uses: docker/login-action@v2 # with: # username: ${{ vars.DOCKER_USERNAME }} # password: ${{ vars.DOCKER_TOKEN }} # - name: Build and Push Docker Image # uses: docker/build-push-action@v6 # with: # push: true # tags: ${{ vars.DOCKER_USERNAME }}/$IMG_NAME:latest - name: Run On Server run: | docker run -d --name $CTN_NAME -p $HOST_PORT:8080 $IMG_NAME # - name: SSH Deploy # uses: easingthemes/ssh-deploy-action@v2.1.5 # env: # SSH_PRIVATE_KEY: ${{ vars.SSH_PRIVATE_KEY }} # ARGS: echo "deploying" # with: # source: . # destination: /app/demo # host: ${{ vars.HOST }} # port: 22 # username: ${{ vars.USERNAME }}