Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
with:
cache-key: os-capacity
context: .
platforms: linux/amd64,linux/arm64
platforms: linux/amd64
push: true
tags: ${{ steps.image-meta.outputs.tags }}
labels: ${{ steps.image-meta.outputs.labels }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tox.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10']
python-version: ['3.12']

steps:
- uses: actions/checkout@v4
Expand Down
54 changes: 48 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,52 @@
FROM ubuntu:22.04
FROM ubuntu:24.04 AS build-image

RUN apt-get update && apt-get upgrade -y && apt-get install python3-pip tini -y && apt-get clean
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install python3-venv python3-dev gcc git -y && \
rm -rf /var/lib/apt/lists/*

COPY ./requirements.txt /opt/os-capacity/requirements.txt
RUN pip install -U -r /opt/os-capacity/requirements.txt
# build into a venv we can copy across
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

COPY ./os_capacity/prometheus.py /opt/os-capacity/prometheus.py
COPY ./requirements.txt /os-capacity/requirements.txt
RUN pip install -U pip setuptools
RUN pip install --requirement /os-capacity/requirements.txt

COPY . /os-capacity
RUN pip install -U /os-capacity

#
# Now the image we run with
#
FROM ubuntu:24.04 AS run-image

RUN apt-get update && \
apt-get upgrade -y && \
apt-get install --no-install-recommends python3 tini ca-certificates -y && \
rm -rf /var/lib/apt/lists/*

# Copy accross the venv
COPY --from=build-image /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# Create the user that will be used to run the app
ENV APP_UID=1001
ENV APP_GID=1001
ENV APP_USER=app
ENV APP_GROUP=app
RUN groupadd --gid $APP_GID $APP_GROUP && \
useradd \
--no-create-home \
--no-user-group \
--gid $APP_GID \
--shell /sbin/nologin \
--uid $APP_UID \
$APP_USER

# Don't buffer stdout and stderr as it breaks realtime logging
ENV PYTHONUNBUFFERED=1

USER $APP_UID
ENTRYPOINT ["tini", "--"]
CMD ["python3", "-u", "/opt/os-capacity/prometheus.py"]
CMD ["os_capacity"]
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Or just run via docker or similar:::
docker run -d --name os_capacity \
--mount type=bind,source=/etc/kolla/os-capacity/,target=/etc/openstack \
--env OS_CLOUD=openstack --env OS_CLIENT_CONFIG_FILE=/etc/openstack/clouds.yaml \
-p 9000:9000 ghcr.io/stackhpc/os-capacity:e08ecb8
-p 9000:9000 ghcr.io/stackhpc/os-capacity:master
curl localhost:9000


Expand Down
Loading