-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Streamline docker usage #49981
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
Streamline docker usage #49981
Changes from all commits
ce3252c
2f59464
e2e2d88
b11df2f
a81f8d4
3468e25
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,13 @@ | ||
FROM quay.io/condaforge/mambaforge | ||
FROM python:3.10.8 | ||
WORKDIR /home/pandas | ||
|
||
# if you forked pandas, you can pass in your own GitHub username to use your fork | ||
# i.e. gh_username=myname | ||
ARG gh_username=pandas-dev | ||
ARG pandas_home="/home/pandas" | ||
RUN apt-get update && apt-get -y upgrade | ||
RUN apt-get install -y build-essential | ||
|
||
# Avoid warnings by switching to noninteractive | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
# hdf5 needed for pytables installation | ||
RUN apt-get install -y libhdf5-dev | ||
|
||
# Configure apt and install packages | ||
RUN apt-get update \ | ||
&& apt-get -y install --no-install-recommends apt-utils git tzdata dialog 2>&1 \ | ||
# | ||
# Configure timezone (fix for tests which try to read from "/etc/localtime") | ||
&& ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime \ | ||
&& dpkg-reconfigure -f noninteractive tzdata \ | ||
# | ||
# cleanup | ||
&& apt-get autoremove -y \ | ||
&& apt-get clean -y \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Switch back to dialog for any ad-hoc use of apt-get | ||
ENV DEBIAN_FRONTEND=dialog | ||
|
||
# Clone pandas repo | ||
RUN mkdir "$pandas_home" \ | ||
&& git clone "https://github.com/$gh_username/pandas.git" "$pandas_home" \ | ||
&& cd "$pandas_home" \ | ||
&& git remote add upstream "https://github.com/pandas-dev/pandas.git" \ | ||
&& git pull upstream main | ||
|
||
# Set up environment | ||
RUN mamba env create -f "$pandas_home/environment.yml" | ||
|
||
# Build C extensions and pandas | ||
SHELL ["mamba", "run", "--no-capture-output", "-n", "pandas-dev", "/bin/bash", "-c"] | ||
RUN cd "$pandas_home" \ | ||
&& export \ | ||
&& python setup.py build_ext -j 4 \ | ||
&& python -m pip install --no-build-isolation -e . | ||
RUN python -m pip install --upgrade pip | ||
RUN python -m pip install --use-deprecated=legacy-resolver \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Possible resolutions to use the newer solver I think are
So either reduce the number of dependencies, add a floor to their version or set up a constraint file once after solving There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or use mamba, which has a decent dependency resolver ... |
||
-r https://raw.githubusercontent.com/pandas-dev/pandas/main/requirements-dev.txt | ||
CMD ["/bin/bash"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know if those packages are not actually needed anymore? Especially
tzdata
seems to have been added on purpose to have the timezone tests working: #46219(we copied this for the gitpod docker file as well, but so if it's no longer needed, we can clean that up there as well)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tzdata is already installed on the image. I'm guessing either from the base python image or may be included as part of the base ubuntu