python的docker环境配置
docker环境配置
Docker基本操作指令, 下载安装参考
https://duoke360.com/tutorial/docker/install-docker
docker + flask + uwsgi + conda 实战部署
目录结构

config.ini
[uwsgi]
http = 0.0.0.0:5000
wsgi-file = /app/src/flask_main.py
callable=app
processes = 2
threads = 8
py-autoreload = true
master = true
flask_main.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World! '
if __name__ == '__main__':
app.run()
Dockerfile
FROM continuumio/miniconda3
COPY env.yml /app/
WORKDIR /app
SHELL ["/bin/bash", "--login", "-c"]
RUN conda init bash && conda env create -f env.yml
CMD ["/app/src/sh/start.sh"]
在Dockerfile中起不了指定的conda,所以需要在脚本去起
参考
start.sh
#!/bin/bash
server_start(){
cd src
source activate
export PYTHONPATH=`pwd`
conda activate py36
uwsgi config.ini
}
server_start
env.yml(仅供参考,以conda export为准)
name: py36
channels:
- conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
dependencies:
- _libgcc_mutex=0.1
- _openmp_mutex=4.5
- ca-certificates=2021.10.8
- certifi=2021.5.30
- dataclasses=0.8
- flask=2.0.2
- icu=68.1
- itsdangerous=2.0.1
- jansson=2.13.1
- ld_impl_linux-64=2.35.1
- libffi=3.3
- libgcc-ng=9.3.0
- libgomp=9.3.0
- libiconv=1.16
- libstdcxx-ng=9.3.0
- libxml2=2.9.12
- markupsafe=2.0.1
- ncurses=6.3
- openssl=1.1.1k
- pcre=8.45
- pip=21.2.2
- python=3.6.13
- python_abi=3.6
- readline=8.1
- setuptools=58.0.4
- sqlite=3.36.0
- tk=8.6.11
- uwsgi=2.0.19.1
- werkzeug=2.0.2
- wheel=0.37.0
- xz=5.2.5
- yaml=0.2.5
- zlib=1.2.11
- pip:
- click==8.0.3
- importlib-metadata==4.8.3
- jinja2==3.0.3
- typing-extensions==4.0.1
- zipp==3.6.0
prefix: /root/miniconda3/envs/py36
执行代码
- 生成conda环境:
conda create -n uwsgi_flask python=3.6 - 激活conda环境:
conda activate uwsgi_flask - 使用conda安装uwsgi:
conda install uwsgi (不能直接pip安装) - 安装falsk:
pip install flask - 导出yml:
conda env export --no-builds > env.yml - 构建image:
docker build -t uwsgi_flask:v0.1 -f Dockerfile . - 启动服务:
docker run --rm -it --name uwsgi_flask -p 5000:5000 -v /project/path:/app/src uwsgi_flask:v0.1;/project/path 为存放flask服务的地址,映射到/app/src目录中
启动成功如下

python的docker环境配置的更多相关文章
- python+selenium的环境配置
以前写过关于python和selenium加myeclipse的环境配置,但是myeclipse启动时过于费时,虽然myeclipse有很好的提示功能,但是作为初学者,我还是直接用python的idl ...
- Python selenium chrome 环境配置
Python selenium chrome 环境配置 一.参考文章: 1. 记录一下python easy_install和pip安装地址和方法 http://heipark.iteye.com/b ...
- Java应用在docker环境配置容器健康检查
在<极速体验docker容器健康>一文已体验了docker容器健康检查功能,今天就来给java应用的容器加入健康检查,使应用的状态随时都可以被监控和查看. 实战环境信息 操作系统:macO ...
- Python 爬虫2——环境配置
关于环境配置的操作,其实非常简单,假如不使用第三方的框架的话,只需要安装Python即可完成后续的操作. 一.Python的安装和配置: windows系统的安装配置过程如下,假如是Mac系统,可参考 ...
- Python Flask 多环境配置
Python里取配置文件的时候,之前是使用的ini文件和python里configparser 模块: 可参考:https://www.cnblogs.com/feeland/p/4514771.ht ...
- Python沙盒环境配置
一.简介 本文介绍配置python沙盒环境的方法步骤. 二.安装步骤 1.安装pyenv http://www.cnblogs.com/274914765qq/p/4948530.html 2.安装v ...
- 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)
环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...
- 免安装方式的Python之VSCode环境配置
概述 本文旨在介绍免安装方式,在VSCode中搭建Python(3.73)的配置环境.至于Python是什么.它能做些什么,诸如此类的介绍均不在此文中介绍,相信能看此文的人,多多少少都会有些了解. V ...
- python+django+pycharm 环境配置 (window7)
一.python环境配置 登录python官网,下载windows版的python,本项目使用32位的python2.7.6,下载地址: http://www.python.org/ftp/pytho ...
- python的开发环境配置-Eclipse-PyDev插件安装
安装PyDev插件的两种安装方法: 1.百度搜索PyDev 2.4.0.zip,下载后解压,得到Plugins和Feature文件夹,复制两文件夹到Eclipse目录,覆盖即可. 插件的版本要对应py ...
随机推荐
- java的死锁与解决方法
一.什么是死锁? 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无限等待. 二.产生死锁的原因与四个条件 2.1 死锁原因 竞争资 ...
- Vue父子组件传值.sync
<template> <div class="content"> <btn :btnName.sync='num' ></btn> ...
- Python第十章实验报告
一.实验对象:<零基础学Python>6道实例和2道实战 二.实验环境:IDLE Shell 3.9.7 三.实验目的:学习如何在Python中进行文件和目录的相关操作 四.实验过程: 实 ...
- 9. 实现包括前端后台的预约洗狗功能 - 使用Power Automate发送预约邮件 - 使用Power Automate发送带选择按钮(option)的邮件
除了发送普通的电子邮件外,我们还可以选择发送带选项的电子邮件来得到客户的反馈,下面我们就一起来创建带有选择功能的电子邮件吧. 1. 打开我们的Power Portal,在左侧导航栏选择流,点击左上 ...
- 读取远程服务器linux指定目录下文本内容(工具类)
package com.aa.dataadmin.common.utils; import cn.hutool.extra.ssh.JschUtil; import com.jcraft.jsch.C ...
- [RoarCTF 2019]Easy Calc 1
进入主页面是一个计算器,可以计算 右键源代码发现提示信息,javascript脚本,其中还有calc.php文件 注释说明了这里引入了waf 尝试访问calc.php 是一道命令执行,尝试输入phpi ...
- 解析极限编程-拥抱变化_V2
作者:Kent Beck 第一章 极限编程定义 XP(极限编程):extreme programming,适用于中小型团队在需求不明确或迅速变化的情况下进行软件开发的轻量级方法学. 第二章 学习开车 ...
- Agora Flat:在线教室的开源初体验
开发者其实很多时候都非常向往开源,开源领域的大佬也特别多,我们谈不上有多资深,也是一边探索一边做.同时,也希望可以借这次机会把我们摸索到的一些经验分享给大家. 01 Flat 是什么 Flat 是一个 ...
- 20个值得收藏的实用JavaScript技巧
1.确定对象的数据类型 function myType(type) { return Object.prototype.toString.call(type).slice(8, -1); 使用Obje ...
- Live Home 3D Pro - 用于公寓和房屋的室内设计,支持 3D 实时渲染
Live Home 3D Pro是一个直观的应用程序,用于公寓和房屋的室内设计,以及几乎任何复杂的景观.专业版提供了一套扩展的工具和独特的出口质量. 下载 ► Live Home 3D Pro 下载安 ...