230 行
6.1 KiB
Docker
230 行
6.1 KiB
Docker
# syntax=docker/dockerfile:1.9
|
|
# Build: podman build -t odoo-oca:18 -f odoo-oca.ContainerFile .
|
|
# Export: podman save -o /home/badstorm/odoo-oca-18.tar localhost/odoo-oca:18
|
|
|
|
# syntax=docker/dockerfile:1.9
|
|
# Build: podman build -t odoo:18-debian13 -f odoo.ContainerFile .
|
|
|
|
FROM debian:13-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV ODOO_BRANCH=18.0
|
|
ENV VENV_PATH=/opt/odoo/venv18
|
|
|
|
ENV DB_HOST=postgres
|
|
ENV DB_PORT=5432
|
|
ENV DB_USER=odoo
|
|
ENV DB_PASSWORD=odoo
|
|
ENV ADMIN_PASSWD=my_admin_password
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
git wget curl ca-certificates \
|
|
python3 python3.13-dev python3-dev python3-venv python3-pip \
|
|
build-essential gcc g++ make pkg-config \
|
|
postgresql-client xfonts-base \
|
|
libxml2-dev libxslt1-dev zlib1g-dev \
|
|
libjpeg-dev libpng-dev libopenjp2-7-dev libtiff-dev \
|
|
libfreetype6-dev liblcms2-dev \
|
|
libssl-dev libffi-dev libpq-dev libldap2-dev libsasl2-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
|
|
|
|
RUN mkdir -p \
|
|
/opt/odoo/addons18/OCA \
|
|
/opt/odoo/addons18/custom \
|
|
/opt/odoo/data/filestore \
|
|
/opt/odoo/log \
|
|
/etc/odoo \
|
|
&& chown -R odoo:odoo /opt/odoo /etc/odoo
|
|
|
|
WORKDIR /opt/odoo
|
|
|
|
RUN git clone https://github.com/OCA/OCB.git \
|
|
--depth=1 --branch=${ODOO_BRANCH} --single-branch \
|
|
/opt/odoo/18.0
|
|
|
|
RUN set -eux; \
|
|
for repo in \
|
|
account-analytic \
|
|
account-budgeting \
|
|
account-closing \
|
|
account-financial-reporting \
|
|
account-financial-tools \
|
|
account-fiscal-rule \
|
|
account-invoice-reporting \
|
|
account-invoicing \
|
|
account-payment \
|
|
account-reconcile \
|
|
agreement \
|
|
ai \
|
|
automation \
|
|
bank-payment \
|
|
bank-payment-alternative \
|
|
bank-statement-import \
|
|
brand \
|
|
calendar \
|
|
commission \
|
|
community-data-files \
|
|
connector \
|
|
connector-interfaces \
|
|
connector-telephony \
|
|
contract \
|
|
credit-control \
|
|
crm \
|
|
currency \
|
|
data-protection \
|
|
ddmrp \
|
|
delivery-carrier \
|
|
dms \
|
|
donation \
|
|
e-commerce \
|
|
edi \
|
|
edi-framework \
|
|
edi-voxel \
|
|
event \
|
|
field-service \
|
|
fleet \
|
|
geospatial \
|
|
helpdesk \
|
|
hr \
|
|
hr-attendance \
|
|
hr-expense \
|
|
hr-holidays \
|
|
interface-github \
|
|
intrastat-extrastat \
|
|
iot \
|
|
knowledge \
|
|
l10n-belgium \
|
|
l10n-brazil \
|
|
l10n-colombia \
|
|
l10n-ecuador \
|
|
l10n-finland \
|
|
l10n-france \
|
|
l10n-germany \
|
|
l10n-iran \
|
|
l10n-italy \
|
|
l10n-japan \
|
|
l10n-mexico \
|
|
l10n-netherlands \
|
|
l10n-portugal \
|
|
l10n-romania \
|
|
l10n-spain \
|
|
l10n-switzerland \
|
|
l10n-thailand \
|
|
l10n-usa \
|
|
mail \
|
|
maintenance \
|
|
management-system \
|
|
manufacture \
|
|
manufacture-reporting \
|
|
margin-analysis \
|
|
mass-mailing \
|
|
mis-builder \
|
|
multi-company \
|
|
operating-unit \
|
|
partner-contact \
|
|
payroll \
|
|
pms \
|
|
pos \
|
|
product-attribute \
|
|
product-configurator \
|
|
product-pack \
|
|
product-variant \
|
|
project \
|
|
purchase-reporting \
|
|
purchase-workflow \
|
|
queue \
|
|
repair \
|
|
reporting-engine \
|
|
report-print-send \
|
|
rest-framework \
|
|
rma \
|
|
sale-blanket \
|
|
sale-channel \
|
|
sale-promotion \
|
|
sale-reporting \
|
|
sale-workflow \
|
|
search-engine \
|
|
server-auth \
|
|
server-backend \
|
|
server-brand \
|
|
server-env \
|
|
server-tools \
|
|
server-ux \
|
|
shopfloor-app \
|
|
sign \
|
|
social \
|
|
spreadsheet \
|
|
stock-logistics-availability \
|
|
stock-logistics-barcode \
|
|
stock-logistics-interfaces \
|
|
stock-logistics-orderpoint \
|
|
stock-logistics-putaway \
|
|
stock-logistics-release-channel \
|
|
stock-logistics-reporting \
|
|
stock-logistics-request \
|
|
stock-logistics-reservation \
|
|
stock-logistics-shopfloor \
|
|
stock-logistics-tracking \
|
|
stock-logistics-transport \
|
|
stock-logistics-warehouse \
|
|
stock-logistics-workflow \
|
|
storage \
|
|
survey \
|
|
timesheet \
|
|
vertical-association \
|
|
web \
|
|
web-api \
|
|
web-api-contrib \
|
|
website \
|
|
; do \
|
|
git clone https://github.com/OCA/${repo}.git \
|
|
--depth=1 \
|
|
--branch=${ODOO_BRANCH} \
|
|
--single-branch \
|
|
/opt/odoo/addons18/OCA/${repo}; \
|
|
done
|
|
|
|
RUN git clone https://gitlab.com/PNLUG/Odoo/repository/iso_addons.git \
|
|
--depth=1 --branch=${ODOO_BRANCH} --single-branch \
|
|
/opt/odoo/addons18/custom/iso_addons
|
|
|
|
RUN python3 -m venv ${VENV_PATH}
|
|
|
|
RUN ${VENV_PATH}/bin/pip install --upgrade pip setuptools wheel \
|
|
&& ${VENV_PATH}/bin/pip install \
|
|
pypdf phonenumbers asn1crypto codicefiscale unidecode psycopg2-binary \
|
|
paramiko==3.5.1 pysftp packaging pyPDF2 cryptography \
|
|
-r /opt/odoo/18.0/requirements.txt \
|
|
-r /opt/odoo/addons18/OCA/l10n-italy/requirements.txt
|
|
|
|
RUN ADDONS_PATH="/opt/odoo/18.0/addons,/opt/odoo/18.0/odoo/addons"; \
|
|
for d in /opt/odoo/addons18/OCA/*; do \
|
|
ADDONS_PATH="${ADDONS_PATH},${d}"; \
|
|
done; \
|
|
ADDONS_PATH="${ADDONS_PATH},/opt/odoo/addons18/custom/iso_addons"; \
|
|
printf "[options]\n\
|
|
admin_passwd = ${ADMIN_PASSWD}\n\
|
|
db_host = ${DB_HOST}\n\
|
|
db_port = ${DB_PORT}\n\
|
|
db_user = ${DB_USER}\n\
|
|
db_password = ${DB_PASSWORD}\n\
|
|
addons_path = ${ADDONS_PATH}\n\
|
|
logfile = /opt/odoo/log/odoo.log\n\
|
|
data_dir = /opt/odoo/data\n\
|
|
proxy_mode = True\n\
|
|
" > /etc/odoo/odoo18.conf \
|
|
&& chown -R odoo:odoo /opt/odoo /etc/odoo \
|
|
&& chmod 640 /etc/odoo/odoo18.conf \
|
|
&& chmod -R 775 /opt/odoo/data /opt/odoo/log
|
|
|
|
EXPOSE 8069 8072
|
|
|
|
VOLUME ["/opt/odoo/addons18/custom", "/opt/odoo/data", "/opt/odoo/log"]
|
|
|
|
USER odoo
|
|
|
|
WORKDIR /opt/odoo/18.0
|
|
|
|
CMD ["/opt/odoo/venv18/bin/python", "/opt/odoo/18.0/odoo-bin", "-c", "/etc/odoo/odoo18.conf"] |