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"]