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环境配置的更多相关文章

  1. python+selenium的环境配置

    以前写过关于python和selenium加myeclipse的环境配置,但是myeclipse启动时过于费时,虽然myeclipse有很好的提示功能,但是作为初学者,我还是直接用python的idl ...

  2. Python selenium chrome 环境配置

    Python selenium chrome 环境配置 一.参考文章: 1. 记录一下python easy_install和pip安装地址和方法 http://heipark.iteye.com/b ...

  3. Java应用在docker环境配置容器健康检查

    在<极速体验docker容器健康>一文已体验了docker容器健康检查功能,今天就来给java应用的容器加入健康检查,使应用的状态随时都可以被监控和查看. 实战环境信息 操作系统:macO ...

  4. Python 爬虫2——环境配置

    关于环境配置的操作,其实非常简单,假如不使用第三方的框架的话,只需要安装Python即可完成后续的操作. 一.Python的安装和配置: windows系统的安装配置过程如下,假如是Mac系统,可参考 ...

  5. Python Flask 多环境配置

    Python里取配置文件的时候,之前是使用的ini文件和python里configparser 模块: 可参考:https://www.cnblogs.com/feeland/p/4514771.ht ...

  6. Python沙盒环境配置

    一.简介 本文介绍配置python沙盒环境的方法步骤. 二.安装步骤 1.安装pyenv http://www.cnblogs.com/274914765qq/p/4948530.html 2.安装v ...

  7. 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)

     环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...

  8. 免安装方式的Python之VSCode环境配置

    概述 本文旨在介绍免安装方式,在VSCode中搭建Python(3.73)的配置环境.至于Python是什么.它能做些什么,诸如此类的介绍均不在此文中介绍,相信能看此文的人,多多少少都会有些了解. V ...

  9. python+django+pycharm 环境配置 (window7)

    一.python环境配置 登录python官网,下载windows版的python,本项目使用32位的python2.7.6,下载地址: http://www.python.org/ftp/pytho ...

  10. python的开发环境配置-Eclipse-PyDev插件安装

    安装PyDev插件的两种安装方法: 1.百度搜索PyDev 2.4.0.zip,下载后解压,得到Plugins和Feature文件夹,复制两文件夹到Eclipse目录,覆盖即可. 插件的版本要对应py ...

随机推荐

  1. Web部署

    1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse ...

  2. TCP idle timeout 和TCP Keepalive 比较和分析

    TCP  idle timeout  和TCP Keepalive  是两个独立的功能. TCP  idle timeout  TCP  idle timeout  是系统TCP配置文件中的空闲超时设 ...

  3. 使用JAX构建强化学习agent并借助TensorFlowLite将其部署到Android应用中

    在之前发布文章<一个新 TensorFlow Lite 示例应用:棋盘游戏>中,展示了如何使用 TensorFlow 和 TensorFlow Agents 来训练强化学习 (RL) ag ...

  4. bilibili视频常用快捷键

    Esc退出全屏 Q点赞.长按三连 W投币 E收藏 D开/关弹幕 F开/关全屏 M静音 [ 多P 上一个 ] 多P下一个 Enter发弹幕 Space播放/暂停 →单次快进5s,长按倍速播放 ←快退5s ...

  5. Checkmk监控工具使用手册

    其实用法Checkmk官网文档很全面:https://docs.checkmk.com/latest/en/intro_setup.html 顺着beginner's guide章节看完基本就能上手, ...

  6. 关于Appium执行用例过程中问题处理办法

    关于Appium执行用例过程中问题处理办法 1.     运行环境 1.1 windows10   64位系统 1.2 华为荣耀V10   Android 9 1.3 appium-desktop 1 ...

  7. 分布式CAP_BASE博客参考

    https://blog.csdn.net/lixinkuan328/article/details/95535691 CAP 一致性(Consistency) 可用性(Availability) 分 ...

  8. 68.C++中的const

      编写程序过程中,我们有时不希望改变某个变量的值.此时就可以使用关键字 const 对变量的类型加以限定. 初始化和const   因为const对象一旦创建后其值就不能再改变,所以const对象必 ...

  9. ByteHouse MaterializedMySQL 增强优化

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前言 社区版 ClickHouse 推出了MaterializedMySQL数据库引擎,用于将 MySQL 中的表 ...

  10. 方差分析2——双因素方差分析(R语言)

    双因素方差分析(Double factor variance analysis) 有两种类型:一个是无交互作用的双因素方差分析,它假定因素A和因素B的效应之间是相互独立的,不存在相互关系:另一个是有交 ...