通过Github在DigitalOcean上自动部署docker-compose

oug3syen  于 2023-10-16  发布在  Docker
关注(0)|答案(2)|浏览(101)

我是一个新手,当它涉及到码头。我有一个包含4个服务的Web应用程序。我设法为它创建了一个docker-compose。
我现在想发表它。我的计划是
1.将整个仓库与compose文件和源代码上传到github中的私有仓库。
1.然后在数字海洋中创建一个小水滴
我希望能够通过github轻松发布代码。它将自动上传到服务器并重新启动所需的服务。最好的办法是什么?

m0rkklqb

m0rkklqb1#

是的,有。在Digitalocean中有一个应用程序板。一旦你使用它来部署你的docker镜像,每当你通过github更新docker镜像时,你的网站将重建(ci/cd)。我希望这能对你有所帮助。

nc1teljy

nc1teljy2#

要通过GitHub在DigitalOcean上自动部署Docker Compose应用程序,您可以使用GitHub Actions。下面是一个基本的工作流程:
1.创建一个Dockerfile:如果你还没有Dockerfile,在你的项目根目录下创建一个Dockerfile。
1.创建docker-compose.yml文件:此文件将定义组成应用的服务,以便它们可以在隔离环境中一起运行。
1.创建GitHub操作工作流:在GitHub存储库中,在.github/workflows目录中创建一个新文件,例如deploy. yml。
下面是deploy.yml文件的基本示例:

name: Deploy to DigitalOcean

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Login to DockerHub
      uses: docker/login-action@v1
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_TOKEN }}

    - name: Build and push Docker image
      uses: docker/build-push-action@v2
      with:
        context: .
        push: true
        tags: your-dockerhub-username/your-repo-name:latest

    - name: Setup doctl
      uses: digitalocean/action-doctl@v2
      with:
        token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}

    - name: Deploy to DigitalOcean
      run: |
        doctl compute droplet delete your-droplet-name --force
        doctl compute droplet create your-droplet-name --image docker-18-04 --size s-1vcpu-1gb --region nyc3 --ssh-keys your-ssh-key-id --user-data-file deploy.sh --wait

1.创建一个deploy.sh文件:该文件将在创建后在您的droplet上运行。它应该拉取你的Docker镜像并启动你的Docker Compose应用程序。

!/bin/bash

安装Docker Compose

curl -L [https://github.com/docker/compose/releases/download/1.29.2/docker-compose-uname](https://github.com/docker/compose/releases/download/1.29.2/docker-compose-%60uname) -s-uname -m -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

运行Docker Compose应用

docker-compose up -d
1.将secret添加到您的GitHub存储库:转到您的存储库设置,然后选择“Secrets”选项卡,并添加您的DockerHub用户名、DockerHub令牌和DigitalOcean访问令牌。
1.推送到GitHub:当你推送到主分支时,GitHub操作工作流将运行,构建并推送你的Docker镜像,然后在DigitalOcean上部署你的应用程序。
请将您的-dockerhub-username、your-repo-name、your-droplet-name和your-ssh-key-id分别替换为您实际的DockerHub用户名、DockerHub存储库名称、DigitalOcean droplet名称和SSH密钥ID。

相关问题