• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Docker部署SayHello(FastAPI)

其他 zy7y 1606次浏览 0个评论

目录

  • 前言
  • 服务部署
  • 部署后端
    • 1. 进入到sayhello目录
    • 2. 编写API的Dockerfile(如果有请之直接构建镜像- 在下一步)
    • 3. 构建镜像
    • 4. 运行容器
    • 5. 访问IP:8000/message,得到如下页面
  • 部署前端
    • 1. 进入到sayhello/static目录
    • 2. 编写Dockerfile文件(如果有请直接进入第三步)
    • 3. 构建镜像
    • 4. 启动容器
    • 5. 访问IP:9001/message.html
  • 参考资料及感谢

前言

昨天发了一个SayHello FastAPI版本,今天部署上自己的服务器了
体验地址: http://49.232.203.244:9001/message.html

服务部署

前置条件:以下在centos7.5 云服务器实验通过

yum -y install git	# 安装git
curl -sSL https://get.daocloud.io/docker | sh	# 安装docker

git clone https://gitee.com/zy7y/sayhello

git clone https://github.com/zy7y/sayhello

上面两个命令选一个执行就可了

部署后端

1. 进入到sayhello目录

cd sayhello

2. 编写API的Dockerfile(如果有请之直接构建镜像- 在下一步)

在sayhello目录下新建如下Dockerfile

FROM python:3.7
COPY . /app
WORKDIR ./app
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]

简单说下上面内容做了什么事情,不一定正确加了些个人理解

FROM python:3.7		# 拉取基础镜像python3.7,本机已有该镜像就会使用该镜像,没有就去远端仓库拉取,速度慢就需要换下源地址,百度即可(这里应该就是拉下镜像后弄成了个容器)
COPY . /app		# 将当前所在目录下所有文件 复制到 容器里面 /app 目录下
WORKDIR ./app	# 指定工作目录,我的理解是后面执行的命令 都相当于在这个目录下执行了,根目录的形式吧
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/	# 这步是在容器里面执行 pip 安装依赖
EXPOSE 80	# 将容器中80 端口开放
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]	# 容器运行时将执行 uvicorn main:app --host 0.0.0.0 --port 80 启动服务

3. 构建镜像

docker build -t sayhello .

4. 运行容器

会自动执行dockerfile里面的CMD命令

docker run -d --name sayhello-fastapi -p 8000:80 sayhello

5. 访问IP:8000/message,得到如下页面

Docker部署SayHello(FastAPI)

部署前端

先确认message.html中的baseURL是不是后端服务的IP地址(127.0.0.1 不行)

Docker部署SayHello(FastAPI)

1. 进入到sayhello/static目录

cd sayhello/static/

2. 编写Dockerfile文件(如果有请直接进入第三步)

FROM nginx:1.15.2-alpine
COPY . /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

3. 构建镜像

docker build -t sayhello-front .

4. 启动容器

docker run -d --name sayhello-front-9000 -p 9001:80 sayhello-front

5. 访问IP:9001/message.html

Docker部署SayHello(FastAPI)

参考资料及感谢

感谢资料提供者/作者

  1. https://aqzt.com/bubble/6513.html
  2. https://www.cnblogs.com/tian874540961/p/11916832.html
  3. https://www.runoob.com/docker/docker-dockerfile.html


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Docker部署SayHello(FastAPI)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……