istio.io/istio@v0.0.0-20240520182934-d79c90f27776/samples/helloworld/src/Dockerfile (about) 1 # Copyright Istio Authors 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 FROM python:3.12.1-slim 16 17 WORKDIR /opt/microservices 18 COPY app.py ./ 19 COPY requirements.txt ./ 20 21 # install the dependencies and packages in the requirements file 22 RUN pip install --no-cache-dir -r requirements.txt 23 24 # old image had curl and could be used as a sample client if desired 25 RUN apt-get update \ 26 && apt-get install curl --no-install-recommends -y \ 27 && rm -rf /var/lib/apt/lists/* 28 29 EXPOSE 5000 30 31 ARG service_version 32 ENV SERVICE_VERSION ${service_version:-v1} 33 34 # image will bind on TCP6 by default. In k8s pod spec (in a deployment pod template most likely) override for explicit IPv4 if needed with the command shown below: 35 # ["gunicorn", "-b", "[0.0.0.0]:5000", "app:app", "-k", "gevent"] 36 CMD ["gunicorn", "-b", "[::]:5000", "app:app", "-k", "gevent"]