@@ -7,40 +7,18 @@ FROM ghcr.io/rackerlabs/genestack-images/ceph-libs:${CEPH_TAG} AS dependency_bui
77ARG CACHEBUST=0
88ARG GNOCCHI_VERSION=master
99ARG OS_CONSTRAINTS=master
10- RUN export DEBIAN_FRONTEND=noninteractive \
11- && apt-get update && apt-get upgrade -y \
12- && apt-get install --no-install-recommends -y \
13- bash \
14- brotli \
15- build-essential \
16- curl \
17- docutils-common \
18- gettext \
19- git \
20- liberasurecode-dev \
21- libffi-dev \
22- libjs-sphinxdoc \
23- libjs-underscore \
24- libldap2-dev \
25- libpq-dev \
26- libsasl2-dev \
27- libsnappy-dev \
28- libssl-dev \
29- libsystemd-dev \
30- libxml2-dev \
31- libxslt1-dev \
32- libxslt1.1 \
33- pkg-config \
34- ssl-cert \
35- xmlsec1
10+ RUN export DEBIAN_FRONTEND=noninteractive
3611RUN curl -fsSL -o /tmp/upper-constraints.txt https://opendev.org/openstack/requirements/raw/branch/${OS_CONSTRAINTS}/upper-constraints.txt \
3712 && sed -i '/^gnocchi===.*/d' /tmp/upper-constraints.txt \
3813 && /var/lib/openstack/bin/pip install --constraint /tmp/upper-constraints.txt \
3914 "gnocchi[postgresql,ceph,keystone] @ git+https://github.com/gnocchixyz/gnocchi.git@${GNOCCHI_VERSION}" \
4015 gnocchiclient \
4116 PyMySQL \
4217 pymemcache \
43- uwsgi
18+ SQLAlchemy \
19+ uwsgi \
20+ cffi \
21+ bcrypt
4422
4523COPY scripts/gnocchi-cve-patching.sh /opt/
4624RUN bash /opt/gnocchi-cve-patching.sh
@@ -57,23 +35,61 @@ RUN find / -name '*.pyc' -delete \
5735 fi; \
5836 done
5937
60-
6138FROM python:3.12-slim-bookworm
6239LABEL maintainer="Rackspace"
6340LABEL vendor="Rackspace OpenStack Team"
6441LABEL org.opencontainers.image.name="gnocchi"
6542LABEL org.opencontainers.image.description="OpenStack Service (gnocchi) built for the enterprise."
6643COPY --from=dependency_build /usr/local/lib /usr/local/lib
6744COPY --from=dependency_build /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
45+ COPY --from=dependency_build /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
6846COPY --from=dependency_build /var/lib/openstack /var/lib/openstack
6947RUN export DEBIAN_FRONTEND=noninteractive \
7048 && apt-get update && apt-get upgrade -y \
7149 && apt-get install --no-install-recommends -y \
72- libffi8 \
73- libpq5 \
74- libsnappy1v5 \
75- libxml2 \
76- libxslt1.1 \
50+ apache2 \
51+ apache2-dev \
52+ libffi8 \
53+ libpq5 \
54+ libsnappy1v5 \
55+ libxml2 \
56+ python3 \
57+ python3-dev \
58+ python3-memcache \
59+ bash \
60+ brotli \
61+ build-essential \
62+ curl \
63+ wget \
64+ locales \
65+ docutils-common \
66+ gettext \
67+ git \
68+ libffi-dev \
69+ libjs-sphinxdoc \
70+ libjs-underscore \
71+ libldap2-dev \
72+ libpq-dev \
73+ postgresql \
74+ memcached \
75+ librados-dev \
76+ liberasurecode-dev \
77+ python3-rados \
78+ ceph \
79+ libsasl2-dev \
80+ libsnappy-dev \
81+ libprotobuf-dev \
82+ libssl-dev \
83+ libsystemd-dev \
84+ libxml2-dev \
85+ libxslt1-dev \
86+ libxslt1.1 \
87+ pkg-config \
88+ ssl-cert \
89+ xmlsec1 \
90+ && /var/lib/openstack/bin/pip install --upgrade mod_wsgi \
91+ && /var/lib/openstack/bin/mod_wsgi-express module-config > /etc/apache2/mods-available/wsgi.load \
92+ && a2enmod wsgi \
7793 && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
7894 && apt-get clean -y \
7995 && rm -rf /var/lib/apt/lists/* \
@@ -85,8 +101,14 @@ RUN export DEBIAN_FRONTEND=noninteractive \
85101 && mkdir -p /var/lib/openstack/etc/gnocchi \
86102 && ln -s /var/lib/openstack/etc/gnocchi /etc/gnocchi \
87103 && chown gnocchi:gnocchi -h /etc/gnocchi \
88- && chown -R gnocchi:gnocchi /var/lib/openstack/etc/gnocchi
89- ENV PATH="/usr/local/bin:/usr/local/sbin:/var/lib/openstack/bin:$PATH"
104+ && chown -R gnocchi:gnocchi /var/lib/openstack/etc/gnocchi \
105+ && sed -i 's@^ErrorLog.*@ErrorLog /dev/stderr@' /etc/apache2/apache2.conf \
106+ && mkdir -p /var/run/apache2 /var/lock/apache2 /var/log/apache2 \
107+ && chown www-data:www-data /var/run/apache2 /var/lock/apache2 /var/log/apache2
108+ # Set the environment variables for the gnocchi venv
109+ ENV PATH="/var/lib/openstack/bin:$PATH"
110+ ENV PYTHONPATH="/usr/local/lib/python3.12/site-packages:/var/lib/openstack/lib/python3.12/site-packages:$PYTHONPATH"
111+ # Set the working directory
90112WORKDIR /var/lib/openstack
91- USER 42424:42424
113+ # Set the entrypoint to the gnocchi upgrade command
92114ENTRYPOINT ["/var/lib/openstack/bin/gnocchi-upgrade"]
0 commit comments