Skip to content

Commit

Permalink
Merge pull request #25 from akretion/add-full-image
Browse files Browse the repository at this point in the history
Add 17.0, 18.0 full version
  • Loading branch information
sebastienbeau authored Nov 25, 2024
2 parents ff93e13 + 3c803a8 commit c28edad
Show file tree
Hide file tree
Showing 8 changed files with 315 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ jobs:
- ODOOVERSION: "15.0"
- ODOOVERSION: "16.0"
- ODOOVERSION: "16.0-light"
- ODOOVERSION: "17.0"
- ODOOVERSION: "17.0-light"
- ODOOVERSION: "18.0"
- ODOOVERSION: "18.0-light"
steps:
- uses: actions/checkout@v2
Expand Down
63 changes: 63 additions & 0 deletions 17.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# python 3.10 is the default used in acsone
FROM ghcr.io/acsone/odoo-bedrock:17.0-py311-jammy-latest
ARG PYTHONBIN=python3.11
MAINTAINER Akretion

# syntax = docker/dockerfile:1.4

# List from https://github.com/camptocamp/docker-odoo-project/blob/master/16.0/Dockerfile
ENV BUILD_PACKAGE \
build-essential \
gcc \
${PYTHONBIN}-dev \
libevent-dev \
libfreetype6-dev \
libxml2-dev \
libxslt1-dev \
libsasl2-dev \
libldap2-dev \
libssl-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
git \
# Additionnal dep from Ak
#vim \
po4a \
postgresql-client \
libpq-dev \
libmupdf-dev \
mupdf-tools \
mupdf \
expect

# recreate isolate env
RUN set -x \
&& rm -rf /odoo/bin \
&& ${PYTHONBIN} -m venv /env \
&& /env/bin/pip install -U pip wheel setuptools
ENV PATH=/env/bin:$PATH

RUN --mount=type=cache,target=/var/cache/apt \
apt-get update \
&& apt-get install -y --no-install-recommends $BUILD_PACKAGE

COPY 17.0/base_requirements.txt /tmp/base_requirements.txt
RUN pip install --no-cache-dir -r /tmp/base_requirements.txt

COPY 17.0/ak_requirements.txt /tmp/ak_requirements.txt
RUN pip install --no-cache-dir -r /tmp/ak_requirements.txt

ENV ADDONS_PATH=/odoo/src/addons,/odoo/local-src,/odoo/links

COPY install/* /install/
RUN --mount=type=cache,target=/root/.cache /install/install_tool && rm /install/install_tool

COPY install/repos.yaml /root/.config/git-autoshare/repos.yml
COPY bin/* /usr/local/bin/


# customize entrypoint

ENTRYPOINT ["/usr/local/bin/ak-entrypoint.sh"]
CMD ["odoo"]
4 changes: 4 additions & 0 deletions 17.0/ak_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
click-odoo-contrib>=1.16.0
#sentry_sdk>=1.9.9
git+https://github.com/oca/openupgradelib.git@master
odoo_test_helper==2.0.2
82 changes: 82 additions & 0 deletions 17.0/base_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
Babel==2.10.3 ; python_version >= '3.11'
chardet==5.2.0 ; python_version >= '3.11'
cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes
decorator==5.1.1 ; python_version >= '3.11'
docutils==0.20.1 ; python_version >= '3.11'
ebaysdk==2.1.5
freezegun==1.2.1 ; python_version >= '3.11'
geoip2==2.9.0
gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
idna==3.6 ; python_version >= '3.12'
Jinja2==3.1.2 ; python_version > '3.10'
libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package
lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean)
lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches)
MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
num2words==0.5.13 ; python_version >= '3.12'
ofxparse==0.21
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
polib==1.1.1
psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
pydot==1.4.2
pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches
PyPDF2==2.12.1 ; python_version > '3.10'
pyserial==3.5
python-dateutil==2.8.2 ; python_version >= '3.11'
python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package
python-stdnum==1.19 ; python_version >= '3.11'
pytz # no version pinning to avoid OS perturbations
pyusb==1.2.1
qrcode==7.4.2 ; python_version >= '3.11'
reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
requests==2.31.0 ; python_version >= '3.11' # (Noble)
rjsmin==1.2.0 ; python_version >= '3.11'
rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package
urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
vobject==0.9.6.1
Werkzeug==3.0.1 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
xlrd==2.0.1 ; python_version >= '3.12'
XlsxWriter==3.1.9 ; python_version >= '3.12'
xlwt==1.3.0
zeep==4.2.1 ; python_version >= '3.11'
setuptools==73.0.1

# Not part of official requirements, but used by some addons
# colorama==0.3.9
gdata==2.0.18
html5lib==1.1
odfpy==1.4.1
pyinotify==0.9.6
simplejson==3.19.3


# test / lint
# those libs and their dependencies are unpinned
# to always test with the last version of it
flake8
pytest==8.3.2
pluggy
coverage
pytest-odoo>=0.4.7
pytest-cov>=2.10.0
watchdog

# Library dependency
argh==0.31.3
atomicwrites==1.4.1
attrs==24.2.0
beautifulsoup4==4.12.3
future==1.0.0
mccabe==0.7.0
more-itertools==10.4.0
pbr==6.0.0
pexpect==4.9.0
ptyprocess==0.7.0
py==1.11.0
pycodestyle==2.12.1
pyflakes==3.2.0
unicodecsv==0.14.1
wrapt==1.16.0
63 changes: 63 additions & 0 deletions 18.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# python 3.10 is the default used in acsone
FROM ghcr.io/acsone/odoo-bedrock:18.0-py312-noble-latest
ARG PYTHONBIN=python3.12
MAINTAINER Akretion

# syntax = docker/dockerfile:1.4

# List from https://github.com/camptocamp/docker-odoo-project/blob/master/16.0/Dockerfile
ENV BUILD_PACKAGE \
build-essential \
gcc \
${PYTHONBIN}-dev \
libevent-dev \
libfreetype6-dev \
libxml2-dev \
libxslt1-dev \
libsasl2-dev \
libldap2-dev \
libssl-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
git \
# Additionnal dep from Ak
#vim \
po4a \
postgresql-client \
libpq-dev \
libmupdf-dev \
mupdf-tools \
mupdf \
expect

# recreate isolate env
RUN set -x \
&& rm -rf /odoo/bin \
&& ${PYTHONBIN} -m venv /env \
&& /env/bin/pip install -U pip wheel setuptools
ENV PATH=/env/bin:$PATH

RUN --mount=type=cache,target=/var/cache/apt \
apt-get update \
&& apt-get install -y --no-install-recommends $BUILD_PACKAGE

COPY 18.0/base_requirements.txt /tmp/base_requirements.txt
RUN pip install --no-cache-dir -r /tmp/base_requirements.txt

COPY 18.0/ak_requirements.txt /tmp/ak_requirements.txt
RUN pip install --no-cache-dir -r /tmp/ak_requirements.txt

ENV ADDONS_PATH=/odoo/src/addons,/odoo/local-src,/odoo/links

COPY install/* /install/
RUN --mount=type=cache,target=/root/.cache /install/install_tool && rm /install/install_tool

COPY install/repos.yaml /root/.config/git-autoshare/repos.yml
COPY bin/* /usr/local/bin/


# customize entrypoint

ENTRYPOINT ["/usr/local/bin/ak-entrypoint.sh"]
CMD ["odoo"]
4 changes: 4 additions & 0 deletions 18.0/ak_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
click-odoo-contrib>=1.16.0
#sentry_sdk>=1.9.9
git+https://github.com/oca/openupgradelib.git@master
odoo_test_helper==2.0.2
91 changes: 91 additions & 0 deletions 18.0/base_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# The officially supported versions of the following packages are their
# python3-* equivalent distributed in Ubuntu 24.04 and Debian 12
asn1crypto==1.5.1 ; python_version >= '3.11'
Babel==2.10.3 ; python_version >= '3.11'
cbor2==5.6.2 ; python_version >= '3.12'
chardet==5.2.0 ; python_version >= '3.11'
cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes
decorator==5.1.1 ; python_version >= '3.11'
docutils==0.20.1 ; python_version >= '3.11'
freezegun==1.2.1 ; python_version >= '3.11'
geoip2==2.9.0
gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
idna==3.7 ; python_version >= '3.12'
Jinja2==3.1.3 ; python_version > '3.10'
libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package
lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean)
lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches)
MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
num2words==0.5.13 ; python_version >= '3.12'
ofxparse==0.21
openpyxl==3.1.2 ; python_version >= '3.12'
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
polib==1.1.1
psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12'
psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches
PyPDF2==2.12.1 ; python_version > '3.10'
pyserial==3.5
python-dateutil==2.8.2 ; python_version >= '3.11'
python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package
python-stdnum==1.19 ; python_version >= '3.11'
pytz # no version pinning to avoid OS perturbations
pyusb==1.2.1
qrcode==7.4.2 ; python_version >= '3.11'
reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
requests==2.32.0 ; python_version >= '3.11' # (Noble)
rjsmin==1.2.0 ; python_version >= '3.11'
urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
vobject==0.9.6.1
Werkzeug==3.0.3 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
xlrd==2.0.1 ; python_version >= '3.12'
XlsxWriter==3.1.9 ; python_version >= '3.12'
xlwt==1.3.0
zeep==4.2.1 ; python_version >= '3.11'






setuptools==73.0.1

# Not part of official requirements, but used by some addons
# colorama==0.3.9
gdata==2.0.18
html5lib==1.1
odfpy==1.4.1
pyinotify==0.9.6
simplejson==3.19.3


# test / lint
# those libs and their dependencies are unpinned
# to always test with the last version of it
flake8
pytest==8.3.2
pluggy
coverage
pytest-odoo>=0.4.7
pytest-cov>=2.10.0
watchdog

# Library dependency
argh==0.31.3
atomicwrites==1.4.1
attrs==24.2.0
beautifulsoup4==4.12.3
future==1.0.0
mccabe==0.7.0
more-itertools==10.4.0
pbr==6.0.0
pexpect==4.9.0
ptyprocess==0.7.0
py==1.11.0
pycodestyle==2.12.1
pyflakes==3.2.0
unicodecsv==0.14.1
wrapt==1.16.0
6 changes: 6 additions & 0 deletions update_base_requirement
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
#!/bin/bash
set -Eeuo pipefail

rm -rf 18.0/base_requirements.txt
wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/18.0/base_requirements.txt -O 18.0/base_requirements.txt

rm -rf 17.0/base_requirements.txt
wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/17.0/base_requirements.txt -O 17.0/base_requirements.txt

rm -rf 16.0/base_requirements.txt
wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/16.0/base_requirements.txt -O 16.0/base_requirements.txt

Expand Down

0 comments on commit c28edad

Please sign in to comment.