dockerfile例子
dockerfile各参数参考:https://blog.csdn.net/xixihahalelehehe/article/details/107517710
dockerfile cmd、entrypoint区别:https://www.jb51.net/article/218740.htm
https://www.cnblogs.com/momoyan/p/12437312.html
1.无论是cmd还是entrypoint,写在Dockerfile里面,都只是执行最后一条
2.docker run命令不会覆盖entrypoint,但是会将参数追加
3.docker run命令会将cmd覆盖
docker进入alpine容器(参考:https://blog.csdn.net/Gragon_Shao/article/details/113341418)
docker run -it --rm alpine ash
1.alpine构建python
1.python+django(默认python3.6.8版本)
FROM alpine
MAINTAINER oyealex
# 定义需要的DJANGO版本
ENV DJANGO_VER 2.0
# 拷贝安装pip的脚本
COPY get-pip.py /get-pip.py
# 设置alpine的镜像地址为阿里云的地址
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" > /etc/apk/repositories \
# 更新安装 bash curl python3等工具
&& apk update \
&& apk add --no-cache bash \
# 修改为从本地文件拷贝此脚本,不再需要curl工具
# curl \
python3 \
# 由于通过apk安装的pip总是基于python2.7的版本,不符合项目要求,此处使用get-pip.py的方式
安装基于python3.6的pip
# 下载get-pip.py脚本
# 从本地文件拷贝,不再下载
# && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
# 安装pip
&& python3 /get-pip.py \
# 从阿里云的镜像安装特定版本的django
&& pip install django==$DJANGO_VER -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \
# 删除不必要的脚本
&& rm -f /get-pip.py \
# 此环境专用做运行django项目,因此移除不必要的工具,减少空间
&& python3 -m pip uninstall -y pip setuptools wheel \
# && apk del curl \
# 最后清空apk安装时产生的无用文件
&& rm -rf /var/cache/apk/*
# 暴露的端口
EXPOSE 50001
# 定义匿名卷,即为项目代码所在目录,挂载目录需要在run时-v参数指定
VOLUME /project
# 运行服务的命令
CMD ["python3", "/project/djangodemo/manage.py", "runserver", "0.0.0.0:50001"]
2.编译安装python
https://blog.csdn.net/Kernel_Heart/article/details/107808949
-
更换源`
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
-
vim Dockerfile
FROM alpine RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories #替换源 RUN apk add build-base RUN apk add --no-cache -U zlib-dev RUN apk add --no-cache -U openssl-dev RUN wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz RUN apk add xz && xz -d Python-3.6.7.tar.xz && tar -xvf Python-3.6.7.tar RUN cd Python-3.6.7/ && ./configure --enable-optimizations --with-ensurepip=install RUN make && make install
docker build -t 镜像名称:版本号 .可能会报错(缓存问题),如果报错,可以按照此命令先打包镜像,再作为基础镜像使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律