亚马逊(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应用。通过这种方式,您可以轻松地部署您的应用程序,并快速启动和停止它们。希望这篇文章对您有所帮助。