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. C++初识指针之一

    新手学习C/C++都跳不过去的地方,就是指针,用的话,确实好用,但是概念比较绕, 指针的通俗说法 1.简单的来说,就是说每一个变量,在电脑内都占一个地方,这个地方用一个16进掉的编号来进行标记,类似于 ...

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

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

  3. Navicat Premium 16 永久破解激活

    Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库,让管理不 ...

  4. 如何确定有价值的RPA场景

    什么是RPA? RPA(Robotic Process Automation,机器人流程自动化)是通过特定的.可模拟人类在计算机界面上进行操作的技术,按规则自动执行相应的流程任务,代替或辅助人类完成相 ...

  5. Android笔记-跳转到相册选择图片

    跳转到相册选择图片 即设置一个点击事件,点击之后即可跳转到相册进行图片的选择 具体的实现步骤: 界面很简单的啦,这里就直接将源代码放出来啦: <?xml version="1.0&qu ...

  6. SpringBoot笔记--配置文件分类+yaml相关知识+读取配置文件内容

    配置文件 要是需要使用自己的配置替换默认配置时,需要使用后缀名为application.properties或者application.yml(application.yaml)进行配置 当然,几个文 ...

  7. iText5实现Java生成PDF

    参考代码:https://github.com/youcong1996/study_simple_demo 参考博客:https://blog.csdn.net/weixin_37848710/art ...

  8. Scanner进阶用法

    Scanner进阶用法 判断是否为整数,浮点数 package charpter2; import java.util.Scanner; public class Scanner3 { public ...

  9. Solon Initializr v1.2 发布

    Solon Initializr 是 Solon 框架的模板生成器项目.本期更新增加了快捷组合包的依赖选择,并生成对应的项目模板. 更新说明 增加 Solon Lib 依赖选择,并生成对应项目 增加 ...

  10. vue cli3中配置生产环境、开发环境、测试环境

    首先在packjson中配置 "scripts": { "serve": "vue-cli-service serve", //调用开发ap ...