# 搭建alpine+python3+selenium测试环境# 1. 基础镜像 使用只有5M大小的linux系统alpine最新版本# 2. 配置国内镜像地址 清华镜像地址# 3. 配置工作目录 WORKDIR "/data"# 4. 配置Volueme挂载点 "/data"# 5. 设置相关变量 # 6. 设置时区变量 Asia/Shanghai 需要安装时区包RUN apk add -U tzdata# 7. 安装或配置相关软件和设置# 8. 配置对外端口 EXPOSE 8080 (EXPOSE设置的并没有实际生效, 只是文档中标明)# 9. 配置启动的 ENTRYPOINT [ "/bin/sh" ]# 10.配置镜像启动默认执行命令 CMD [ "/bin/sh" ] 或 # 11.添加标签 作者 邮箱 网站 etc.# 12.添加用户 USER root# 安装或配置相关软件和设置 RUN命令# 1. 从所有远程存储库更新存储库索引 apk add --update# 2. 以匹配存储库升级当前安装的软件包 apk add --upgrade# 3. 安装vim编辑器 apk add --no-cache -U vim# 4. 安装python3: apk add --no-cache -U python3# 5. 安装python3-dev: apk add --no-cache -U python3-dev (可选择性安装)# 6. 安装相关编译库: apk add --no-cache -U gcc g++ (可选择性安装)# 7. 更新升级pip与setuptools: pip3 --default-timeout=100 install -U pip setuptools# 8. 安装selenium: pip3 --default-timeout=100 install -U selenium
# 配置基础镜像FROM alpine:latest# 添加标签说明LABEL author="xinyuefeifie" email="uabest@qq.com" purpose="Auto testing based on selenium"# 配置清华镜像地址RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.8/main/" > /etc/apk/repositories# 配置工作目录WORKDIR /data# 配置Volueme挂载点 "/data"VOLUME [ "/data" ]# 设置用户USER root# 设置时区变量ENV TIME_ZONE Asia/Shanghai#安装时区包并配置时区TIME_ZONE为中国标准时间RUN apk add --no-cache -U tzdata \ && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \ && echo "${TIME_ZONE}" > /etc/timezone # 更新升级软件RUN apk add --update --upgrade \ vim #gcc \ #g++ \# 安装软件python3,升级pip,setuptools,安装seleniumRUN apk add --no-cache python3 \ #&& apk add --no-cache python3-dev \ && python3 -m ensurepip \ && rm -r /usr/lib/python*/ensurepip \ && pip3 install --default-timeout=100 --no-cache-dir --upgrade pip \ && pip3 install --default-timeout=100 --no-cache-dir --upgrade setuptools \ && pip3 install --default-timeout=100 --no-cache-dir --upgrade selenium \ && if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi \ && if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi \ && rm -rf /var/cache/apk/* \ && rm -rf ~/.cache/pip# 设置启动点 镜像启动时的第一个命令, 通常 docker run 的参数不会覆盖掉该指令ENTRYPOINT [ "/bin/sh" ]# 配置非生效对外端口EXPOSE 8008# 设置启动时预期的命令参数, 可以被 docker run 的参数覆盖掉.# CMD [ "/bin/sh" ]
作者:心悦飞飞
链接:https://www.jianshu.com/p/59034b414a5e