基礎鏡像選擇Alpine Linux,關于Alpine的介紹參見 Alpine Docker 安裝 bash 。Dockerfile内容如下:
FROM alpine:3.7
MAINTAINER Rethink [email protected]
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
apk源中的Python版本Docker搭建Robot Framework環境 - 以上隻安裝了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...】