编译一个支持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 ...
随机推荐
- 【洛谷P3329】 [ZJOI2011]最小割(最小割树)
洛谷 题意: 给出一个无向图,之后有\(q,q\leq 30\)组询问,每组询问有一个\(x\),回答有多少点对\((a,b)\)其\(a-b\)最小割不超过\(x\). 思路: 这个题做法要最小割树 ...
- (转)cube-ui后编译
转载地址:https://www.jianshu.com/p/189755f9ce43 1. 后编译介绍 目前大部分的前端项目开发都是使用es6+的代码并且使用babel进行编译,而传统的对代码包的引 ...
- 题解:openjudge 1.11——01
题目 思路:二分查找 来,上代码 #include<cstdio> #include<iostream> using namespace std; +]; int n,m; i ...
- 鲜贝7.3--postman安装
Postman电脑客户端安装: Postman的安装非常简单,在windows系统只需要双击安装包,然后什么都不需要操作,它直接就自己完成了,如下图.如果是mac 也是跟普通软件的安装方法相同.在初次 ...
- luoguP5283 [十二省联考2019]异或粽子
题意 类似超级钢琴,找最优解用可持久化trie. code: #include<bits/stdc++.h> using namespace std; #define re registe ...
- 物联网架构成长之路(42)-直播流媒体入门(RTMP篇)
1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p ...
- 【shell脚本】通过位置变量创建Linux账户及密码===addUser.sh
通过位置变量创建Linux账户及密码 脚本内容 [root@VM_0_10_centos shellScript]# vi addUser.sh #!/bin/bash # 通过位置变量创建系统账户及 ...
- ElementUI中如何实现Form表单内的文字居中
<el-table :data='orderList' border stripe :align='center' :cell-style='cellStyle' :header-cell-st ...
- IDEA设置方法参数列表类型自动提示
默认情况下,IDEA的提示不够完全,可以通过以下设置,将提示功能打开的更完善. 效果如下面俩图所示
- ssh工具推荐MobaXterm 可能是你遇到过的比较出色的一款
之前一直用xshell,现在推荐一个更好用的工具. 一站式的解决你的需求,而且画风个人也比较喜欢,而且随便一百度就能找得到green PJ 的版本