-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #71 from hydroshare/bullseye-py39-dj32-upgrade
Base image update: Debian buster, Python3.9
- Loading branch information
Showing
3 changed files
with
165 additions
and
89 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,34 @@ | ||
FROM python:3.6-jessie | ||
MAINTAINER Michael J. Stealey <[email protected]> | ||
|
||
FROM python:3.9-buster | ||
|
||
ENV DEBIAN_FRONTEND noninteractive | ||
ENV PY_SAX_PARSER=hs_core.xmlparser | ||
|
||
RUN printf "deb http://deb.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main" > /etc/apt/sources.list | ||
RUN printf "deb http://deb.debian.org/debian/ buster main\ndeb http://security.debian.org/debian-security buster/updates main" > /etc/apt/sources.list | ||
|
||
RUN apt-get update && apt-get install -y \ | ||
apt-transport-https \ | ||
ca-certificates \ | ||
sudo \ | ||
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D | ||
curl \ | ||
lsb-release \ | ||
sudo | ||
|
||
RUN sudo mkdir -p /etc/apt/keyrings | ||
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg | ||
|
||
RUN curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - | ||
RUN echo \ | ||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ | ||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | ||
|
||
# Add docker.list and requirements.txt - using /tmp to keep hub.docker happy | ||
COPY . /tmp | ||
RUN cp /tmp/docker.list /etc/apt/sources.list.d/ \ | ||
&& cp /tmp/requirements.txt /requirements.txt | ||
RUN curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash - | ||
|
||
COPY docker.list /etc/apt/sources.list.d/ | ||
RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8 | ||
|
||
RUN sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' \ | ||
&& wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add - | ||
RUN sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' | ||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - | ||
|
||
RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \ | ||
apt-utils \ | ||
docker-ce \ | ||
libfuse2 \ | ||
libjpeg62-turbo \ | ||
libjpeg62-turbo-dev \ | ||
|
@@ -36,9 +37,8 @@ RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \ | |
gdal-bin \ | ||
build-essential \ | ||
libgdal-dev \ | ||
libgdal1h \ | ||
postgresql-9.4 \ | ||
postgresql-client-9.4 \ | ||
postgresql-15 \ | ||
postgresql-client-15 \ | ||
git \ | ||
rsync \ | ||
openssh-client \ | ||
|
@@ -50,21 +50,14 @@ RUN npm install -g phantomjs-prebuilt | |
|
||
WORKDIR / | ||
|
||
#install numpy before matplotlib | ||
RUN pip install 'numpy==1.16.0' | ||
|
||
RUN pip install git+https://github.com/sblack-usu/defusedexpat.git | ||
|
||
# Install pip based packages (due to dependencies some packages need to come first) | ||
RUN export CPLUS_INCLUDE_PATH=/usr/include/gdal | ||
RUN export C_INCLUDE_PATH=/usr/include/gdal | ||
RUN export GEOS_CONFIG=/usr/bin/geos-config | ||
RUN HDF5_INCDIR=/usr/include/hdf5/serial | ||
RUN pip install --upgrade pip | ||
RUN pip install -r requirements.txt | ||
RUN pip install 'setuptools<58.0.0' | ||
|
||
# Install GDAL 2.4.1 from source | ||
RUN wget http://download.osgeo.org/gdal/2.4.1/gdal-2.4.1.tar.gz \ | ||
RUN wget https://ftp.osuosl.org/pub/osgeo/download/gdal/2.4.1/gdal-2.4.1.tar.gz \ | ||
&& tar -xzf gdal-2.4.1.tar.gz \ | ||
&& rm gdal-2.4.1.tar.gz | ||
|
||
|
@@ -75,19 +68,30 @@ RUN ./configure --with-python --with-geos=yes \ | |
&& sudo ldconfig | ||
WORKDIR / | ||
|
||
# TODO: iROds 4.2.x is holding us to Debian Buster which is EOL. It also requires libssl1.0.0 which is obsolete | ||
# we should upgrade to iRods 4.3, Debian Bullseye, etc but this will require at a minimum, changes to our iinit use in HS | ||
RUN wget http://snapshot.debian.org/archive/debian/20190501T215844Z/pool/main/g/glibc/multiarch-support_2.28-10_amd64.deb | ||
RUN sudo dpkg -i multiarch-support*.deb | ||
RUN wget http://snapshot.debian.org/archive/debian/20170705T160707Z/pool/main/o/openssl/libssl1.0.0_1.0.2l-1%7Ebpo8%2B1_amd64.deb | ||
RUN sudo dpkg -i libssl1.0.0*.deb | ||
|
||
# Install iRODS | ||
RUN wget -qO - https://packages.irods.org/irods-signing-key.asc | sudo apt-key add - \ | ||
&& echo "deb [arch=amd64] https://packages.irods.org/apt/ trusty main" | \ | ||
&& echo "deb [arch=amd64] https://packages.irods.org/apt/ bionic main" | \ | ||
sudo tee /etc/apt/sources.list.d/renci-irods.list \ | ||
&& sudo apt-get update && sudo apt-get install -y \ | ||
apt-transport-https \ | ||
irods-runtime \ | ||
irods-icommands | ||
irods-runtime=4.2.10 \ | ||
irods-icommands=4.2.10 | ||
|
||
# Removed defusedexpat (as part of upgrade to python 3.9) | ||
# Added defusedxml | ||
# https://docs.python.org/3.9/library/xml.html?highlight=xml#the-defusedxml-package | ||
# https://github.com/python/cpython/issues/82766 | ||
|
||
# inplaceedit in pip doesn't seem compatible with Django 1.11 yet... | ||
RUN pip install git+https://github.com/theromis/django-inplaceedit.git@e6fa12355defedf769a5f06edc8fc079a6e982ec | ||
# foresite-toolkit in pip isn't compatible with python3 | ||
RUN pip install git+https://github.com/sblack-usu/foresite-toolkit.git#subdirectory=foresite-python/trunk | ||
# Install pip based packages (due to dependencies some packages need to come first) | ||
COPY ./requirements.txt /requirements.txt | ||
RUN pip install -r requirements.txt | ||
|
||
# Install SSH for remote PyCharm debugging | ||
RUN mkdir /var/run/sshd | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
deb https://download.docker.com/linux/debian jessie stable | ||
deb https://download.docker.com/linux/debian buster stable |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,110 +1,182 @@ | ||
amqp==2.5.2 | ||
# generated using pipdeptree https://github.com/tox-dev/pipdeptree | ||
# pipdeptree -f | sed 's/ //g' | sort -u > requirements.txt | ||
aiohttp==3.8.3 | ||
amqp==2.6.1 | ||
anyjson==0.3.3 | ||
arrow==0.7.0 | ||
asgiref==3.5.2 | ||
astroid==1.4.9 | ||
attrs==22.1.0 | ||
autopep8==1.2.2 | ||
Babel==2.11.0 | ||
bagit==1.5.4 | ||
celery==4.4.0 | ||
cffi==1.11.5 | ||
click==6.7 | ||
bcrypt==4.0.1 | ||
beautifulsoup4==4.11.1 | ||
billiard==3.6.4.0 | ||
bleach==4.1.0 | ||
celery==4.4.7 | ||
certifi==2022.12.7 | ||
cffi==1.15.1 | ||
cftime==1.6.2 | ||
chardet==5.1.0 | ||
charset-normalizer==2.0.12 | ||
click==8.1.3 | ||
colorama==0.4.6 | ||
coreapi==2.3.3 | ||
coverage==4.0.3 | ||
coreschema==0.0.4 | ||
coverage==6.5.0 | ||
cryptography==38.0.4 | ||
cycler==0.10.0 | ||
#defusedexpat==0.4 | ||
defusedxml==0.4.1 | ||
Django==1.11.29 | ||
django-appconf==1.0.2 | ||
django-autocomplete-light==2.3.3 | ||
django-braces==1.9.0 | ||
django-compressor==2.2 | ||
django-contrib-comments==1.9.0 | ||
django-cors-headers==2.4.0 | ||
django-crispy-forms==1.7.2 | ||
django-debug-toolbar==1.9.1 | ||
debugpy==1.6.4 | ||
deepdiff==1.7.0 | ||
defusedxml==0.7.1 | ||
Deprecated==1.2.13 | ||
Django==3.2.15 | ||
django-appconf==1.0.5 | ||
django-autocomplete-light==2.3.6 | ||
django-braces==1.15.0 | ||
django-compressor==4.1 | ||
django-contrib-comments==2.2.0 | ||
django-cors-headers==3.10.1 | ||
django-crispy-forms==1.13.0 | ||
django-debug-toolbar==3.2.4 | ||
django-freshly==0.1.2 | ||
django-haystack==2.8.1 | ||
django-haystack==3.1.1 | ||
django-heartbeat==2.0.2 | ||
django-ipware==2.1.0 | ||
django-jsonfield==1.0.1 | ||
django-jsonfield==1.4.1 | ||
django-modeltranslation==0.12.2 | ||
django-nose==1.4.5 | ||
django-oauth-toolkit==1.1.0 | ||
django-robots==2.0 | ||
django-security==0.9.3 | ||
django-oauth-toolkit==2.1.0 | ||
djangorestframework==3.12.4 | ||
django-robots==4.0 | ||
django-security==0.12.0 | ||
django-test-without-migrations==0.6 | ||
django-timedeltafield==0.7.10 | ||
django-widget-tweaks==1.4.1 | ||
djangorestframework==3.11.0 | ||
dnspython==2.2.1 | ||
docker-py==1.7.2 | ||
dominate==2.4.0 | ||
DoubleMetaphone==0.1 | ||
drf-haystack==1.8.5 | ||
drf-yasg==1.17.1 | ||
ecdsa==0.13.3 | ||
enum34==1.1.6 | ||
filebrowser-safe==0.5.0 | ||
flake8==3.5.0 | ||
drf-haystack==1.8.11 | ||
drf-yasg==1.20.0 | ||
ecdsa==0.18.0 | ||
email-validator==1.3.0 | ||
exceptiongroup==1.0.4 | ||
filebrowser-safe==1.1.1 | ||
flake8==6.0.0 | ||
flex==6.14.1 | ||
flower==0.9.3 | ||
foresite@git+https://github.com/sblack-usu/foresite-toolkit.git@94c0c2a8e21a922caa1df6cc412d5dc1a7adb189#subdirectory=foresite-python/trunk | ||
funcsigs==1.0.2 | ||
#functools32==3.2.3.post2 | ||
future==0.16.0 | ||
GDAL==2.4.1 | ||
geographiclib==1.52 | ||
geojson==1.3.2 | ||
geopy==1.16.0 | ||
gevent==1.4.0 | ||
grappelli-safe==0.5.1 | ||
gunicorn==19.6.0 | ||
gevent==22.10.2 | ||
grappelli-safe==1.1.1 | ||
greenlet==2.0.1 | ||
gunicorn==20.1.0 | ||
hsmodels@git+https://github.com/hydroshare/hsmodels.git@3197b512d2764e2a4772596fe6c288331e53223e | ||
html5lib==0.9999999 | ||
idna==3.4 | ||
inflection==0.3.1 | ||
iniconfig==1.1.1 | ||
ipaddress==1.0.22 | ||
isodate==0.5.4 | ||
itypes==1.2.0 | ||
Jinja2==2.10.1 | ||
jsonpointer==1.14 | ||
jsonschema==2.6.0 | ||
jwcrypto==1.4.2 | ||
keepalive==0.5 | ||
kombu==4.6.7 | ||
kiwisolver==1.4.4 | ||
kombu==4.6.11 | ||
lazy-object-proxy==1.8.0 | ||
lxml==4.4.0 | ||
#mapnik==0.1 | ||
Markdown==3.0.1 | ||
MarkupSafe==1.0 | ||
MarkupSafe==2.0.1 | ||
matplotlib==3.1.2 | ||
mccabe==0.6.1 | ||
Mezzanine==4.3.1 | ||
mccabe==0.7.0 | ||
Mezzanine==5.1.4 | ||
mock==1.3.0 | ||
nameparser==0.5.7 | ||
netCDF4==1.5.1.2 | ||
netCDF4==1.5.1.2 | ||
nose==1.3.7 | ||
nose-timer>=0.7.4,<1.0.0 | ||
nose-timer==0.7.6 | ||
numpy==1.16.6 | ||
oauthlib==3.1.0 | ||
OWSLib==0.10.3 | ||
paramiko==2.4.2 | ||
packaging==21.3 | ||
paramiko==2.12.0 | ||
pbr==1.10.0 | ||
pep8==1.7.0 | ||
Pillow==9.3.0 | ||
pip==22.3.1 | ||
pluggy==1.0.0 | ||
prettytable==0.7.2 | ||
probableparsing==0.0.1 | ||
probablepeople==0.5.4 | ||
psycopg2==2.8.2 | ||
ipaddress==1.0.22 | ||
psutil==4.0.0 | ||
psycopg2==2.9.5 | ||
pyasn1==0.4.4 | ||
pycodestyle==2.3.1 | ||
pycodestyle==2.10.0 | ||
pycparser==2.21 | ||
PyCRS==1.0.1 | ||
pyflakes==1.6.0 | ||
pydantic==1.10.2 | ||
pydebug==1.0.3 | ||
pyflakes==3.0.1 | ||
PyLD==2.0.3 | ||
pylint==1.5.5 | ||
pyproj==1.9.5.1 | ||
pysolr==3.4.0 | ||
pysqlite3==0.2.1 | ||
pytest-django>=3.4.7, <4.0.0 | ||
python-crfsuite==0.9.6 | ||
python-dateutil==2.5.3 | ||
python-irodsclient==0.8.1 | ||
pytz==2016.3 | ||
PyNaCl==1.5.0 | ||
pyparsing==3.0.9 | ||
pyproj==3.4.0 | ||
pysolr==3.9.0 | ||
pytest==7.2.0 | ||
pytest-cov==4.0.0 | ||
pytest-django==4.5.2 | ||
python-crfsuite==0.9.8 | ||
python-dateutil==2.8.0 | ||
python-irodsclient==0.8.1 | ||
pytz==2022.6 | ||
pytz-deprecation-shim==0.1.0.post0 | ||
PyYAML==5.3 | ||
rcssmin==1.0.6 | ||
rdflib==4.0.1 | ||
rcssmin==1.1.0 | ||
rdflib==5.0.0 | ||
redis==2.10.5 | ||
requests==2.20.0 | ||
requests==2.28.1 | ||
requests-oauthlib==1.3.1 | ||
rfc3987==1.3.8 | ||
rjsmin==1.2.0 | ||
robot-detection==0.4 | ||
ruamel.yaml==0.17.21 | ||
ruamel.yaml.clib==0.2.7 | ||
selenium==3.0.2 | ||
setuptools==57.5.0 | ||
six==1.16.0 | ||
sorl-thumbnail==12.8.0 | ||
soupsieve==2.3.2.post1 | ||
sqlparse==0.4.3 | ||
strict-rfc3339==0.7 | ||
suds-jurko==0.6 | ||
timeago==1.0.10 | ||
tomli==2.0.1 | ||
tornado==5.1.1 | ||
typing_extensions==4.4.0 | ||
tzdata==2022.7 | ||
tzlocal==4.2 | ||
ua-parser==0.16.1 | ||
uritemplate==3.0.0 | ||
urllib3==1.26.13 | ||
validate-email==1.3 | ||
vine==1.3.0 | ||
virtualenv==15.0.2 | ||
webencodings==0.5.1 | ||
websocket-client==1.4.2 | ||
wheel==0.38.4 | ||
wrapt==1.14.1 | ||
xmlrunner==1.7.7 | ||
xmltodict==0.10.2 | ||
zope.event==4.5.0 | ||
zope.interface==5.5.2 |