Skip to content
Extraits de code Groupes Projets
Valider b70187d4 rédigé par remi-filament's avatar remi-filament
Parcourir les fichiers

Add support for psql environment variables

parent d115402f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
FROM debian:jessie FROM debian:jessie
MAINTAINER Le Filament <https://le-filament.com> MAINTAINER Le Filament <https://le-filament.com>
# Install OS dependencies (some libraries, curl, git, less, postgresqlclient, sudo and wkhtmltox) and Odoo ones
ENV APT_DEPS='python-dev build-essential libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev \ ENV APT_DEPS='python-dev build-essential libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev \
liblcms2-dev libopenjpeg-dev libtiff5-dev tk-dev tcl-dev linux-headers-amd64 \ liblcms2-dev libopenjpeg-dev libtiff5-dev tk-dev tcl-dev linux-headers-amd64 \
libpq-dev libldap2-dev libsasl2-dev' libpq-dev libldap2-dev libsasl2-dev'
LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
PGDATABASE=odoo
RUN set -x; \ RUN set -x; \
apt-get update \ echo 'deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main' >> /etc/apt/sources.list.d/postgresql.list &&\
&& apt-get install -y --no-install-recommends \ curl -SL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - &&\
apt-get update &&\
apt-get install -y --no-install-recommends \
ca-certificates \ ca-certificates \
curl \ curl \
fontconfig \ fontconfig \
...@@ -32,52 +37,53 @@ RUN set -x; \ ...@@ -32,52 +37,53 @@ RUN set -x; \
sudo \ sudo \
xfonts-75dpi \ xfonts-75dpi \
xfonts-base \ xfonts-base \
&& curl -o wkhtmltox.deb -SL https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb \ && \
&& echo '4d104ff338dc2d2083457b3b1e9baab8ddf14202 wkhtmltox.deb' | sha1sum -c - \ curl -o wkhtmltox.deb -SL https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb &&\
&& dpkg --force-depends -i wkhtmltox.deb \ echo '4d104ff338dc2d2083457b3b1e9baab8ddf14202 wkhtmltox.deb' | sha1sum -c - &&\
&& apt-get install -y --no-install-recommends ${APT_DEPS} \ apt-get install -y --no-install-recommends ./wkhtmltox.deb &&\
&& curl https://bootstrap.pypa.io/get-pip.py | python /dev/stdin \ apt-get install -y --no-install-recommends ${APT_DEPS} &&\
&& pip install -I -r https://raw.githubusercontent.com/OCA/OCB/10.0/requirements.txt \ curl https://bootstrap.pypa.io/get-pip.py | python /dev/stdin &&\
&& pip install simplejson WTForms \ pip install -I -r https://raw.githubusercontent.com/OCA/OCB/10.0/requirements.txt &&\
&& apt-get -y purge ${APT_DEPS} \ pip install simplejson WTForms &&\
&& apt-get -y autoremove \ apt-get -y purge ${APT_DEPS} &&\
&& rm -rf /var/lib/apt/lists/* /tmp/* wkhtmltox.deb apt-get -y autoremove &&\
rm -rf /var/lib/apt/lists/* wkhtmltox.deb
# Install Odoo and remove not French translations and .git directory to limit amount of data used by container # Install Odoo and remove not French translations and .git directory to limit amount of data used by container
RUN set -x; \ RUN set -x; \
useradd --create-home --home-dir /opt/odoo --no-log-init odoo \ useradd --create-home --home-dir /opt/odoo --no-log-init odoo &&\
&& /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" \ /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo \ git clone -b 10.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\
&& rm -rf /opt/odoo/odoo/.git \ rm -rf /opt/odoo/odoo/.git &&\
&& find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete \ find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete &&\
&& chown -R odoo:odoo /opt/odoo chown -R odoo:odoo /opt/odoo
# Install Odoo OCA default dependencies # Install Odoo OCA default dependencies
RUN set -x; \ RUN set -x; \
mkdir -p /tmp/oca-repos/ \ mkdir -p /tmp/oca-repos/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting \ git clone -b 10.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting &&\
&& mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ \ mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import \ git clone -b 10.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import &&\
&& mv /tmp/oca-repos/bank-statement-import/account_bank_statement_import_ofx \ mv /tmp/oca-repos/bank-statement-import/account_bank_statement_import_ofx \
/tmp/oca-repos/bank-statement-import/account_bank_statement_import_qif \ /tmp/oca-repos/bank-statement-import/account_bank_statement_import_qif \
/opt/odoo/additional_addons/ \ /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/knowledge.git /tmp/oca-repos/knowledge \ git clone -b 10.0 --depth 1 https://github.com/OCA/knowledge.git /tmp/oca-repos/knowledge &&\
&& mv /tmp/oca-repos/knowledge/knowledge /tmp/oca-repos/knowledge/document_page /opt/odoo/additional_addons/ \ mv /tmp/oca-repos/knowledge/knowledge /tmp/oca-repos/knowledge/document_page /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact \ git clone -b 10.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact &&\
&& mv /tmp/oca-repos/partner-contact/partner_firstname /opt/odoo/additional_addons/ \ mv /tmp/oca-repos/partner-contact/partner_firstname /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools \ git clone -b 10.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools &&\
&& mv /tmp/oca-repos/server-tools/date_range \ mv /tmp/oca-repos/server-tools/date_range \
/tmp/oca-repos/server-tools/auth_session_timeout \ /tmp/oca-repos/server-tools/auth_session_timeout \
/tmp/oca-repos/server-tools/auth_brute_force \ /tmp/oca-repos/server-tools/auth_brute_force \
/tmp/oca-repos/server-tools/password_security \ /tmp/oca-repos/server-tools/password_security \
/opt/odoo/additional_addons/ \ /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social \ git clone -b 10.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social &&\
&& mv /tmp/oca-repos/social/mail_restrict_follower_selection /opt/odoo/additional_addons/ \ mv /tmp/oca-repos/social/mail_restrict_follower_selection /opt/odoo/additional_addons/ &&\
&& git clone -b 10.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web \ git clone -b 10.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web &&\
&& mv /tmp/oca-repos/web/web_export_view /opt/odoo/additional_addons/ \ mv /tmp/oca-repos/web/web_export_view /opt/odoo/additional_addons/ &&\
&& rm -rf /tmp/oca-repos/ \ rm -rf /tmp/oca-repos/ &&\
&& find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete \ find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete &&\
&& chown -R odoo:odoo /opt/odoo chown -R odoo:odoo /opt/odoo
# Copy entrypoint script and Odoo configuration file # Copy entrypoint script and Odoo configuration file
COPY ./entrypoint.sh / COPY ./entrypoint.sh /
...@@ -97,7 +103,6 @@ USER odoo ...@@ -97,7 +103,6 @@ USER odoo
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]
CMD ["odoo"] CMD ["odoo"]
# Metadata # Metadata
ARG VCS_REF ARG VCS_REF
ARG BUILD_DATE ARG BUILD_DATE
...@@ -108,4 +113,3 @@ LABEL org.label-schema.schema-version="$VERSION" \ ...@@ -108,4 +113,3 @@ LABEL org.label-schema.schema-version="$VERSION" \
org.label-schema.build-date="$BUILD_DATE" \ org.label-schema.build-date="$BUILD_DATE" \
org.label-schema.vcs-ref="$VCS_REF" \ org.label-schema.vcs-ref="$VCS_REF" \
org.label-schema.vcs-url="https://github.com/lefilament/docker-odoo" org.label-schema.vcs-url="https://github.com/lefilament/docker-odoo"
FROM debian:stretch FROM debian:stretch
MAINTAINER Le Filament <https://le-filament.com> MAINTAINER Le Filament <https://le-filament.com>
# Generate locale C.UTF-8 for postgres and general locale data ENV APT_DEPS='build-essential libldap2-dev libsasl2-dev python3-dev python3-wheel \
ENV LANG C.UTF-8 LANG=C.UTF-8 \
ENV APT_DEPS='build-essential libldap2-dev libsasl2-dev python3-dev python3-wheel' LC_ALL=C.UTF-8 \
PGDATABASE=odoo
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
RUN set -x; \ RUN set -x; \
apt-get update \ echo 'deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main' >> /etc/apt/sources.list.d/postgresql.list &&\
&& apt-get install -y --no-install-recommends \ curl -SL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - &&\
apt-get update &&\
apt-get install -y --no-install-recommends \
ca-certificates \ ca-certificates \
curl \ curl \
fontconfig \ fontconfig \
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
[![](https://images.microbadger.com/badges/license/lefilament/odoo:12.0.svg)](https://microbadger.com/images/lefilament/odoo:12.0 "Get your own license badge on microbadger.com") [![](https://images.microbadger.com/badges/license/lefilament/odoo:12.0.svg)](https://microbadger.com/images/lefilament/odoo:12.0 "Get your own license badge on microbadger.com")
[![](https://images.microbadger.com/badges/commit/lefilament/odoo:12.0.svg)](https://microbadger.com/images/lefilament/odoo:12.0 "Get your own commit badge on microbadger.com") [![](https://images.microbadger.com/badges/commit/lefilament/odoo:12.0.svg)](https://microbadger.com/images/lefilament/odoo:12.0 "Get your own commit badge on microbadger.com")
# Description
This Docker is inspired from the ones from [Odoo](https://github.com/odoo/docker), [Tecnativa](https://github.com/Tecnativa/doodba) and [Elico Corporation](https://github.com/Elico-Corp/odoo-docker). This Docker is inspired from the ones from [Odoo](https://github.com/odoo/docker), [Tecnativa](https://github.com/Tecnativa/doodba) and [Elico Corporation](https://github.com/Elico-Corp/odoo-docker).
It creates a functional Odoo Docker of limited size (< 400 MB), including Odoo 10.0 or 12.0 from [OCA/OCB](https://github.com/oca/ocb), and also a few addons from [OCA](https://github.com/oca). It creates a functional Odoo Docker of limited size (< 400 MB), including Odoo 10.0 or 12.0 from [OCA/OCB](https://github.com/oca/ocb), and also a few addons from [OCA](https://github.com/oca).
...@@ -46,6 +48,8 @@ The following OCA addons are included (in v10.0, and only the ones followed by * ...@@ -46,6 +48,8 @@ The following OCA addons are included (in v10.0, and only the ones followed by *
- web_export_view - web_export_view
``` ```
# Usage
This docker is automatically built on [DockerHub](https://hub.docker.com/r/lefilament/odoo) and can be pulled by executing the following command: This docker is automatically built on [DockerHub](https://hub.docker.com/r/lefilament/odoo) and can be pulled by executing the following command:
``` ```
...@@ -55,6 +59,41 @@ docker pull remifilament/odoo:12.0 ...@@ -55,6 +59,41 @@ docker pull remifilament/odoo:12.0
It can also serve as base for deployments as described in this [Ansible role](https://github.com/lefilament/ansible_role_odoo_docker) It can also serve as base for deployments as described in this [Ansible role](https://github.com/lefilament/ansible_role_odoo_docker)
docker-compose example is provided below:
```yaml
version: "2.1"
services:
odoo:
image: lefilament/odoo:12.0
container_name: odoo12
depends_on:
- db
tty: true
volumes:
- filestore:/opt/odoo/data:z
restart: unless-stopped
command:
- odoo
db:
image: postgres:10-alpine
container_name: odoo12_db
environment:
POSTGRES_USER: "odoo"
POSTGRES_PASSWORD: "odoo"
volumes:
- db:/var/lib/postgresql/data:z
restart: unless-stopped
networks:
default:
driver_opts:
encrypted: 1
volumes:
filestore:
db:
```
# Credits # Credits
......
...@@ -16,12 +16,21 @@ function check_config() { ...@@ -16,12 +16,21 @@ function check_config() {
if ! grep -q -E "^\s*\b${param}\b\s*=" /opt/odoo/etc/odoo.conf ; then if ! grep -q -E "^\s*\b${param}\b\s*=" /opt/odoo/etc/odoo.conf ; then
DB_ARGS+=("--${param}") DB_ARGS+=("--${param}")
DB_ARGS+=("${value}") DB_ARGS+=("${value}")
else
value=`grep "^\s*\b${param}\b\s*=" /opt/odoo/etc/odoo.conf | cut -d "=" -f 2 | xargs`
fi; fi;
} }
value=""
check_config "db_host" "$HOST" check_config "db_host" "$HOST"
export PGHOST=$value
check_config "db_port" "$PORT" check_config "db_port" "$PORT"
export PGPORT=$value
check_config "db_user" "$USER" check_config "db_user" "$USER"
export PGUSER=$value
check_config "db_password" "$PASSWORD" check_config "db_password" "$PASSWORD"
export PGPASSWORD=$value
psql -qc 'CREATE EXTENSION IF NOT EXISTS unaccent'
case "$1" in case "$1" in
-- | odoo) -- | odoo)
......
...@@ -4,7 +4,7 @@ data_dir = /opt/odoo/data ...@@ -4,7 +4,7 @@ data_dir = /opt/odoo/data
; admin_passwd = admin ; admin_passwd = admin
; csv_internal_sep = , ; csv_internal_sep = ,
; db_maxconn = 64 ; db_maxconn = 64
; db_name = False db_name = odoo
; db_template = template1 ; db_template = template1
; dbfilter = .* ; dbfilter = .*
; debug_mode = False ; debug_mode = False
......
docker-compose
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter