先检查下项目要访问的ip是否都处于生产环境的 (前端、数据库 后端项目ip可以使用localhost)
1.生成项目依赖包
pip freeze > requirements.txt
FROM python:3.9.5
COPY . /zyr_init
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
WORKDIR ./zyr_init
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
FROM python:3.9.5 《----- 指定python的版本镜像
COPY . /zyr_init 《----- . 小点代表复制全部 /zyr_init 从当前目录下
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 《-----应该是设置时间 不重要 可有可无
RUN echo ‘Asia/Shanghai’ >/etc/timezone 《---- 时间 可有可无
WORKDIR ./zyr_init 《---- 设置镜像的工作目录
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 《---- 安装依赖包
EXPOSE 8000 《-----对外暴露的端口信息
CMD [“uvicorn”, “main:app”, “–host”, “0.0.0.0”, “–port”, “8000”] 《-----这里的端口号一定要跟你项目里面的端口号一致
1、在当前目录下执行
构建项目镜像
docker build -t myblog2 . myblog2为镜像名
构建完后运行
docker run -d --name mycontainer -p 28000:8000 myblog2
mycontainer:容器名 myblog2:镜像名 28000:容器端口 需要指向项目的端口 8000
查看容器的运行情况
docker ps -a
✨访问成功!
告诉你见爽歪歪的事情 修改了 项目源码是要重新构建镜像的 我tm给整无语死了
报错方案:
1、如果访问不成功 去看看 服务器的防火墙规则 是否添加了 容器端口号
2、看看服务器的防火墙是否处于关闭状态
3、访问前端、数据库的ip是否是服务器的ip 不可以设置成 localhost这些
4、我就不清楚了