Dokploy 快速入门

Database and Ruby, Python, History


习惯了使用Kubernetes和Docker镜像,走到哪里都想用Docker镜像部署应用。真的是印证了那句话,“手里拿着锤子,看什么都是钉子”。

去年尝试用Nomad部署应用,但后来发现自己很多时候都不需要多个机子,其实都只有一台机子,就索性用了Docker Compose来部署应用。但Docker Compose有一个问题,就是需要本地打镜像,然后再推送镜像,比较麻烦。我就尝试寻找Heroku或者Vercel类似的平台,所以就有了Dokploy。类似的还有Railway, Coolify。说干就干。

安装Dokploy

按照Dokploy的官方文档,一键安装Dokploy。

export DOKPLOY_VERSION=v0.26.6 && curl -sSL https://dokploy.com/install.sh | sh

安装完成之后,访问http://localhost:3000,完成注册。然后创建Project, 环境, 服务。

dokploy-service

我的项目是在Gitee上,就选择通用Git仓库。如果是Github仓库,就选择Github。然后选择对应的仓库,分支,不过国内的环境对Github支持不是很好。

服务镜像我就选择了Dockerfile,因为Railpack拉不下来。至于Dockerfile,需要注意的是替换国内镜像源,否则会很慢。比如下面的Dockerfile。类似的,还要替换Python的源UV_INDEX_URL=https://mirrors.cloud.tencent.com/pypi/simple uv lock

# Update Debian sources to Tencent Cloud mirror
RUN find /etc/apt -name '*.sources' -exec sed -i 's|http://deb.debian.org|http://mirrors.tencentyun.com|g' {} + \
    && find /etc/apt -name '*.sources' -exec sed -i 's|http://security.debian.org|http://mirrors.tencentyun.com/debian-security|g' {} +

# Install system dependencies (optional, for building packages)
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    curl \
    && rm -rf /var/lib/apt/lists/*

部署应用

按照现在的配置,点击部署按钮,等待部署完成。其实Dokploy支持Webhook触发部署,但只支持Github,我就做了一次转发。在我的应用里面接收Gitee的Webhook,然后转发给Dokploy。这样的就可以实现自动部署。

环境变量

环境变量就是Docker compose里面的环境变量,熟悉Heroku的应该很熟悉。这里就不多说了。下面就是替换了镜像源和加了缓存之后,一次推送只需要2s就完成部署了,非常丝滑。

dokploy-deployment