Python服务docker file 的两种方式

方法1:简单方式:

FROM python:3.6.8-slim-stretch
ENV LANG en_US.UTF-8 LC_ALL=en_US.UTF-8
COPY . /home/code/label_recongnize
RUN cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && cd /home/code/news_label_recongnize \
  && python3 -m pip install --trusted-host mirrors.aliyun.com --no-cache-dir -i http://mirrors.aliyun.com/pypi/simple -r /home/code/label_recongnize/requirements.txt \
  && rm -rf /var/cache/* \
  && rm -rf /tmp/*
ENV PYTHONIOENCODING=utf-8
WORKDIR /home/code/label_recongnize/service
ENTRYPOINT ["python3","test.py","&"]

方法2:

# using ubuntu LTS version
FROM ubuntu:20.04 AS builder-image

# avoid stuck build due to user prompt
ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install --no-install-recommends -y python3.9 python3.9-dev python3.9-venv python3-pip python3-wheel build-essential && \
 apt-get clean && rm -rf /var/lib/apt/lists/*
#配置pip镜像源

# create and activate virtual environment
# using final folder name to avoid path issues with packages
RUN python3.9 -m venv /home/tempuser/venv
ENV PATH="/home/tempuser/venv/bin:$PATH"

# install requirements
COPY requirements.txt .
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir wheel
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt

FROM ubuntu:20.04 AS runner-image
RUN apt-get update && apt-get install --no-install-recommends -y python3.9 python3-venv curl telnet vim && \
 apt-get clean && rm -rf /var/lib/apt/lists/*

#timezone config
RUN cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN mkdir /home/tempuser
COPY --from=builder-image /home/tempuser/venv /home/tempuser/venv

RUN mkdir /home/tempuser/code
WORKDIR /home/tempuser/code
COPY . .

EXPOSE 8008

# make sure all messages always reach console
ENV PYTHONUNBUFFERED=1
ENV PYTHONIOENCODING=utf-8
# activate virtual environment
ENV VIRTUAL_ENV=/home/tempuser/venv
ENV PATH="/home/tempuser/venv/bin:$PATH"
# /dev/shm is mapped to shared memory and should be used for gunicorn heartbeat
# this will improve performance and avoid random freezes
ENTRYPOINT ["python3.9","/home/tempuser/code/service/main.py"]

其中CMD和ENTRYPOINT 相关介绍Dockerfile中CMD和ENTRYPOINT的用法_雨还是不停的落下的技术博客_51CTO博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值