基础镜像选择Alpine Linux,关于Alpine的介绍参见Alpine Docker 安装 bash。Dockerfile内容如下:
FROM alpine:3.7
MAINTAINER Rethink shijianzhihu@foxmail.com
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories
# 加--virtual 会报错
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash python python-dev py-pip mysql-dev build-base libffi libffi-dev \
#&& python -m ensurepip \
#&& rm -rf /usr/lib/python*/ensurepip \
&& pip --default-timeout=1000 install --upgrade pip setuptools \
robotframework \
robotframework-databaselibrary \
robotframework-requests \
robotframework-seleniumlibrary \
robotframework-yamllibrary \
robotframework-faker \
# PyMySQL \
&& rm -rf /var/cache/apk/* \
&& rm -rf ~/.cache/* \
ENV PYTHON_VERION 2.7.14
#CMD ["python"]
关于Dockerfile的内容,有几点需要注意:
- 以上安装的python版本是2.7.14,对于rf框架来说,这个版本是可以的,如果想安装3.x版本的python,清华大学的apk源中也提供了3.5.2版本,只需要把上面Dockerfile内容中所有的
python
改为python3
,把pip
改成pip3
就可以了;
- 以上只安装了PySQL模块,如果是连接其他数据库,请自行修改内容;
- 为了方便的进入容器操作,额外为Alpine安装了bash;
- Dockerfile的内容非常灵活,可以根据自己实际需要,为dockerfile添加CMD和ENTRYPOINT命令,二者结合后可以更方便的执行pybot命令;
启动容器实例进行测试,如下:
[root@JDu4e00u53f7 ~]# docker run --rm alpine-py27 python --version
Python 2.7.14
[root@JDu4e00u53f7 ~]# docker run --rm -v /opt/docker/alpine-py/:/alpine-py alpine-py27 python /alpine-py/hello-world.py
hello world
【To be continue...】