e886447d29
Using 'cgroup' in runtime server to limit cpu and memory resources. Each pod in deployment will has respective 'cgroup' directory on host. Under '/sys/fs/cgroup/xx/kubepods/<qos_class>/pod<uid>' directory, use HOSTNAME to create a new cgroup folder, which will only be used to limit function execution. Then we do not need to care about how and when to delete this new folder on host. Use 'openstackqinling/python-runtime:0.0.3' as the new python runtime image. Story: 2001586 Task: 14415 Change-Id: Id04a72c4f4a3c559dc7c746688b13ef93656d125
22 lines
718 B
Docker
22 lines
718 B
Docker
FROM phusion/baseimage:0.9.22
|
|
MAINTAINER anlin.kong@gmail.com
|
|
|
|
# We need to use non-root user to execute functions and root user to set resource limits.
|
|
USER root
|
|
RUN useradd -Ms /bin/bash qinling
|
|
|
|
RUN apt-get update && \
|
|
apt-get -y install python-dev python-setuptools libffi-dev libxslt1-dev libxml2-dev libyaml-dev libssl-dev python-pip && \
|
|
pip install -U pip setuptools uwsgi
|
|
|
|
COPY . /app
|
|
WORKDIR /app
|
|
RUN pip install --no-cache-dir -r requirements.txt && \
|
|
chmod 0750 custom-entrypoint.sh && \
|
|
mkdir /qinling_cgroup && \
|
|
mkdir -p /var/lock/qinling && \
|
|
mkdir -p /var/qinling/packages && \
|
|
chown -R qinling:qinling /app /var/qinling/packages
|
|
|
|
CMD ["/bin/bash", "custom-entrypoint.sh"]
|