Docker部署SayHello(FastAPI)
前言
昨天发了一个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 **可选项:docker换源(加速)**
https://blog.csdn.net/weixin_43463225/article/details/105059738
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
,得到如下页面
部署前端
先确认message.html中的
baseURL
是不是后端服务的IP地址(127.0.0.1 不行)
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
参考资料及感谢
感谢资料提供者/作者
- https://aqzt.com/bubble/6513.html
- https://www.cnblogs.com/tian874540961/p/11916832.html
- https://www.runoob.com/docker/docker-dockerfile.html
Docker部署SayHello(FastAPI)的更多相关文章
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- Docker部署Hadoop集群
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
- 程序开发使用docker部署
我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...
- 我使用celery以及docker部署遇到的问题
首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...
- Docker部署SDN环境
2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...
- 在生产环境使用Docker部署应用
导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...
- NET Core Docker部署
NET Core Docker部署 前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行 ...
- 我使用 Docker 部署 Celery 遇到的问题
问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ...
随机推荐
- NET 5使用HangFire定时任务
注意:1. 当Hangfire服务由Web程序来启用时,默认情况下,web应用程序中的Hangfire服务器实例在第一个用户访问您的站点之前不会启动.甚至,有一些事件会在一段时间后导致web应用程序关 ...
- 如何通过台服流出的服务端自己架设DNF
为达到更好的浏览效果,请点击原文:https://wuter.cn/513.html/ 写在最前 其实我也是dnf忠实粉丝,大概在四年级也就是2008年刚刚开始公测的时候就入坑了,一直持续到高中,目睹 ...
- 构建Zookeeper集群(zkcluster) ~一篇文章玩转zk集群^.^
概念 Zookeeper集群是由一个leader(负责人)主机和多个follower(追随者)或observer(观察者)主机组成. 构建一个Zookeeper集群需要有一个leader和一个foll ...
- spring传播机制注意点
在同一个类里面spring的传播机制是不起作用的比如说在执行saveA方法的时候调用C方法插入C设置的传播属性是不使用事物 但是执行的效果是saveA方法抛出异常后导致C的记录回滚了也就是说明C方法设 ...
- django-mdeditor支持七牛云存储图片
由于django-mdeditor官方插件没有支持第三方存储,所以,我们只能进行修改源码的方式实现了. 本次改写即使替换了其文件,不使用七牛云也是无关紧要的,因为在存储时,去settings.py中判 ...
- Docker安装系列教程
首先准备一台Centos7版本的虚拟机,它支持docker容器技术.本案例使用centos7虚拟机安装docker容器. 一.安装 1.启动虚拟机,配置虚拟机能够访问互联网 2. 安装支持软件包,提供 ...
- hadoop3.2+Centos7+5个节点主从模式配置
准备工作: hadoop3.2.0+jdk1.8+centos7+zookeeper3.4.5 以上是我搭建集群使用的基础包 一.环境准备 master1 master2 slave1 slave2 ...
- 最全总结 | 聊聊 Python 办公自动化之 PPT(中)
1. 前言 上一篇文章简单地介绍了 PPT 的文档结构,并使用 python-pptx 这个依赖库完成对 PPT 文档最基本的操作 最全总结 | 聊聊 Python 办公自动化之 PPT(上) 作为 ...
- Beta冲刺--总结随笔
一.项目预期计划 时间 (天) 预期计划 完成情况 1-2 登录注册页面美化 完成 3-5 完善寻/失物登记以及管理页面 完成 6-9 实现剩下的用户管理.我的账号等页面 50% 9-10 最终测试与 ...
- 一图看懂Actor Typed
引言 朋友看罢我之前整理的<Akka Typed 官方文档之随手记>,一人用了诗歌<长城长>作为回赠,另一人则要求推出简化版本.于是抽空整理了几张思维导图,并且用了一些不太恰当 ...