编译一个支持django及mysqlclient连接的alpine镜像
一切都不难,难的就是在alpine镜像里。
最后,使用了网上编译好mysqlclient的镜像,才搞定。
记录一下。
一,基础镜像Dockerfile
https://github.com/tnir/mysqlclient
FROM python:3.6.8-alpine3.9
MAINTAINER Takuya Noguchi <takninnovationresearch@gmail.com>
RUN apk add --update --no-cache mariadb-connector-c-dev \
&& apk add --no-cache --virtual .build-deps \
mariadb-dev \
gcc \
musl-dev \
&& pip install mysqlclient==1.4.2.post1 \
&& apk del .build-deps
二,扩展的Dockerfile
使用了HTTP代理及公司内部PYPI仓库,脱敏处理
FROM tnir/mysqlclient:1.4.2
MAINTAINER CG
COPY requests.txt /tmp/requests.txt
COPY cx_Oracle-7.2.2-cp36-cp36m-linux_x86_64.whl /tmp/cx_Oracle-7.2.2-cp36-cp36m-linux_x86_64.whl
COPY Pillow-5.4.1-cp36-cp36m-linux_x86_64.whl /tmp/Pillow-5.4.1-cp36-cp36m-linux_x86_64.whl
COPY pycryptodome-3.9.0-cp36-cp36m-linux_x86_64.whl /tmp/pycryptodome-3.9.0-cp36-cp36m-linux_x86_64.whl
RUN export http_proxy=http://xxx:8080 \
&& export https_proxy=http://xxx:8080 \
&& export ftp_proxy=xxx:8080 \
&& pip install -r /tmp/requests.txt -i http://xxx.com.cn/root/pypi/+simple/ --trusted-host xxx.com.cn \
&& pip install /tmp/cx_Oracle-7.2.2-cp36-cp36m-linux_x86_64.whl\
&& pip install /tmp/Pillow-5.4.1-cp36-cp36m-linux_x86_64.whl\
&& pip install /tmp/pycryptodome-3.9.0-cp36-cp36m-linux_x86_64.whl\
&& rm -rf ~/.cache/* \
&& rm -rf /tmp/* \
&& echo 'finished!!!'
三,requests.txt
amqp==2.2.2 Babel==2.1.1 billiard==3.5.0.3 celery==4.1.0 certifi==2017.11.5 chardet==3.0.4 Django==2.0 django-cors-headers==2.4.0 django-redis==4.8.0 django-tinymce==2.7.0 django-widget-tweaks==1.4.3 djangorestframework==3.7.3 flower==0.9.2 gunicorn==19.6.0 idna==2.6 IPy==0.83 kafka-python==1.4.3 kombu==4.1.0 multi-key-dict==2.0.3 pbr==3.1.1 PyMySQL==0.8.0 python-jenkins==1.4.0 pytz==2017.3 PyYAML==3.13 redis==2.10.6 requests==2.18.4 setuptools-git==1.2 six==1.11.0 sqlparse==0.3.0 tornado==5.1 urllib3==1.22 vine==1.1.4 xlrd==1.1.0 xlwt==1.3.0
四,注意事项
如果有的pip直接从pypi仓库安装麻烦,可以考虑直接下载对应的whl文件离线安装。
毕竟,线上追求的是小巧而安全的docker镜像。
编译一个支持django及mysqlclient连接的alpine镜像的更多相关文章
- 编译一个支持多线程的php安装包
前言 因为项目上的需要,需要用到php,一般来说,用默认的版本和配置就可以满足大多数的场景,因为需要加入多线程,所以需要自己编译一个包 一般来说,发行的包的版本的配置选项和代码都是最稳定的,所以在大多 ...
- docker:一个支持django的dockerfile
其中,包括了主要的生产环境模块, 从alpine作起,镜像不大.保存用. FROM alpine:3.7 COPY . /target-dir WORKDIR /target-dir RUN sed ...
- 配置开发支持高并发TCP连接的Linux应用程序全攻略
http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480 ...
- Linux配置支持高并发TCP连接(socket最大连接数)
Linux配置支持高并发TCP连接(socket最大连接数) Linux配置支持高并发TCP连接(socket最大连接数)及优化内核参数 2011-08-09 15:20:58| 分类:LNMP&a ...
- ios 编译openssl支持arm64(转)
最近在编译支付宝 快捷支付(无线) ios 端的时候发现demo不支持arm64.在网上找了下,看到客服说是openssl的库文件不支持arm64,于是自己编译了支持arm64的库文件,发现还是不行, ...
- 多进程解决datasnap支持的tcp长连接数量少的问题
对于实时采集数据的项目,应用场景比如是这样的:5000客户端,每个客户端每隔500MS要给服务器上传一次数据. 大家知道,像INDY这种阻塞型的通信控件,所能支持的TCP长连接的一般地不能超过1000 ...
- python 开发一个支持多用户在线的FTP
### 作者介绍:* author:lzl### 博客地址:* http://www.cnblogs.com/lianzhilei/p/5813986.html### 功能实现 作业:开发一个支持多用 ...
- 编译GDAL支持ArcObjects
编译GDAL支持ArcObjects. 首先修改nmake.opt文件中对应的ArcObjects,修改后的如下所示: #uncomment to use ArcObjects ARCOBJECTS_ ...
- Python3学习之路~8.6 开发一个支持多用户在线的FTP程序-代码实现
作业: 开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...
随机推荐
- 5. Vue - 小清单实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 多线程状态与优先级、线程同步与Monitor类、死锁
一.线程状态 二.线程优先级 三.初步尝试多线程 class Program { static void Main(string[] args) { while (true) { MessagePri ...
- pytorch 创建tensor的几种方法
tensor默认是不求梯度的,对应的requires_grad是False. 1.指定数值初始化 import torch #创建一个tensor,其中shape为[2] tensor=torch.T ...
- css 文本外观属性(text) 和 字体样式属性(font)
css文本 text外观属性 color: 颜色值(red,blue)十六进制 ,rgb letter-spacing: 字间距 px,em word-spacing: 单词间距 对中文无效 line ...
- LG3389 「模板」高斯消元法 高斯消元
问题描述 LG3389 题解 高斯消元,是用来解\(n\)元一次方程组的算法,时间复杂度\(O(n^3)\) 这样就构造出了这个方程组的矩阵 目标就是把这个矩阵左边\(n \times n\)消为单位 ...
- Python 对象比较(is & ==)
Python 对象有 3 要素 id type value id 对象在内存中的地址 可以通过 id() 获取 比较 只有同一个对象 id 才会相同 id 通过 is 比较 示例: a = list( ...
- C++ 数组遍历的两种方式
C++ 数组遍历的两种方式: #include <iostream> using namespace std; int main() { // 一维数组 ] = {, , , , }; / ...
- [题解向] CF#536Div2の题解 E&F
\(0x01~~Preface\) \(emmm\)这次CF本身打的很顺畅,但是居然unrated了--咕咕咕咕 这是头一次CF有比赛我全部题目都做了--可喜可贺可喜可贺233 简单总结一下前面四道题 ...
- 【目录】洛谷|CODEVS题解汇总
[动规]爱与愁的心痛 [动规]编辑距离 [动规]采药 [动规]创意吃鱼法 [动规]过河卒 [动规]开心的金明 [动规]旅行 [动规]骑士游历 [动规]数字三角形 [动规]最长连号 [动规]装箱问题 [ ...
- UAC简介
用户帐户控制 (User Account Control) 是Windows Vista(及更高版本操作系统)中一组新的基础结构技术,可以帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统,同时也可以 ...