Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use local source for installing bonfire #427

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
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
38 changes: 23 additions & 15 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10-1086
FROM registry.access.redhat.com/ubi9-minimal:9.4-1227.1726694542

ARG OC_CLI_VERSION=4.16
ENV APP_ROOT=/opt/bonfire

RUN microdnf install python3.12 python3.12-pip shadow-utils tar gzip && \
ENV PYTHON_VERSION=3.12 \
OC_CLI_VERSION=4.16 \
PATH=$APP_ROOT/.local/bin/:$PATH \
PYTHONUNBUFFERED=1 \
PYTHONIOENCODING=UTF-8 \
LC_ALL=en_US.UTF-8 \
LANG=en_US.UTF-8 \
CNB_USER_ID=1001 \
CNB_GROUP_ID=0 \
PIP_NO_CACHE_DIR=off

RUN microdnf install -y python3.12 python3.12-pip shadow-utils tar gzip git && \
microdnf clean all

RUN groupadd -r -g 1000 bonfire && \
useradd -r -u 1000 -g bonfire -m -d /opt/bonfire -s /bin/bash bonfire
RUN useradd -r -u 1001 -g 0 -m -d $APP_ROOT -s /bin/bash bonfire

RUN curl -L https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest-$OC_CLI_VERSION/openshift-client-linux.tar.gz \
-o oc.tar.gz && \
tar -C /usr/bin/ -xvzf oc.tar.gz oc kubectl && \
rm -f oc.tar.gz
USER 1001
WORKDIR $APP_ROOT

USER bonfire
WORKDIR /opt/bonfire
ENV PATH="/opt/bonfire/.local/bin:$PATH"
COPY --chown=1001:0 . .

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could potentially copy in the hidden . files right? Do you need to copy explicit paths here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah actually due to how we handle versions, I do - bonfire runs this scm dynamic versioning, I need the git repo metadata to get the right version

I was thinking building the wheel and installing that instead - but there's not much of a difference anyways

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that said, I still think a .dockerignore could really help keeping a bunch of not really needed files out, so I'll push that, thanks!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a multi-stage build to build a wheel and then copy and install that alone, please can you give it a second look?

RUN pip3 install crc-bonfire --user
RUN pip3.12 install .
RUN curl -sSLO https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest-$OC_CLI_VERSION/openshift-client-linux.tar.gz && \
tar -C "${APP_ROOT}/.local/bin" -xzf openshift-client-linux.tar.gz oc kubectl && \
rm openshift-client-linux.tar.gz
RUN bonfire config write-default
COPY entrypoint.sh .

ENTRYPOINT ["/opt/bonfire/entrypoint.sh"]
ENTRYPOINT [ "./entrypoint.sh" ]
Loading