亚马逊(Amazon)是全球最大的在线零售商之一,同时也提供了各种免费和付费的云服务。其中,Amazon Elastic Compute Cloud (EC2) 是一项基于云的计算服务,可让开发人员轻松地启动虚拟机实例,并为其提供所需的计算容量。本文将介绍如何在亚马逊云上使用Docker环境部署ChatGPT Web应用。
在开始之前需要新建一个虚拟机,我选择的是Ubuntu, 22.04 LTS,登录亚马逊控制台,点击创建虚拟机-选择没有密钥对-入站出站选择所有流量所有ip-启动实例
下面就跟着我一起操作:
1.在Ubuntu系统安装Docker和Docker-compose
首先,我们需要在Ubuntu系统上安装Docker和Docker-compose。请按照以下步骤进行操作。
更新Ubuntu软件包列表:
sudo apt-get update
安装必要的软件包以允许apt通过HTTPS使用存储库:
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加Docker存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
更新软件包列表:
sudo apt-get update
安装Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io
验证Docker是否安装成功:
sudo docker run hello-world
安装Docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.创建docker-compose.yml文件
我们需要创建一个名为 “docker-compose.yml” 的文件,该文件包含启动ChatGPT Web应用所需的所有信息。请按照以下步骤操作。
创建目录并进入此目录
mkdir chatgpt_web && cd chatgpt_web
编辑docker-compose.yml文件
vim docker-compose.yml
将以下内容复制到文件中并保存
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web:main
ports:
- 3002:3002
environment:
# 二选一
OPENAI_API_KEY: xxxx
# 二选一
OPENAI_ACCESS_TOKEN:
# 反向代理,可选
API_REVERSE_PROXY: xxx
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
注意:OPENAI_API_KEY这里需要填写你自己的,这个很重要,否则会连接不上。
退出vim编辑器
在编辑完docker-compose.yml文件后,可以使用以下命令退出vim编辑器。
:wq!
3.部署运行Docker-compose
现在我们已经准备好启动ChatGPT Web应用了。请按照以下步骤操作。
启动Docker-compose
docker-compose up #命令启动容器
sudo docker-compose up -d #后台启动
确认是否成功启动
sudo docker ps
如果成功启动,您应该看到一个或多个正在运行的容器。我们访问http://ip:3002 #根据自己的实际ip和端口
问题:
如果您尝试运行docker-compose up命令时出现了“Permission denied”错误,这是因为系统没有给予当前用户执行docker-compose命令的权限。
为了解决这个问题,可以通过以下步骤来授予当前用户执行docker-compose命令的权限:
使用ls -l /usr/local/bin/docker-compose命令检查docker-compose二进制文件的权限。您应该会看到类似下面的输出:
-rwxr-xr-x 1 root root 17104272 Sep 15 12:06 /usr/local/bin/docker-compose
如果当前用户不具备执行该文件的权限,请使用以下命令授予它所需的权限:
sudo chmod +x /usr/local/bin/docker-compose
确保当前用户属于docker组,以便能够运行docker-compose命令。如果当前用户不属于docker组,请使用以下命令将其添加到该组中:
sudo usermod -aG docker $USER
关闭并重新打开终端或注销并重新登录以使更改生效。现在您应该可以使用cd到目录 docker-compose命令成功地启动应用程序了。
至此,在亚马逊云上使用Docker环境部署ChatGPT Web应用的过程已经完成。
总结
本文介绍了如何在亚马逊云上使用Docker环境部署ChatGPT Web应用。通过这种方式,您可以轻松地部署您的应用程序,并快速启动和停止它们。希望这篇文章对您有所帮助。