diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3278d5e8f9099d72c9a23e380b547eb13976b0bf..c6388ebb81f7eef9546e2c4544f550eb5c8212d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -59,3 +59,17 @@ docker-build-16.0: - docker push "$CI_REGISTRY_IMAGE:16.0" only: - "16.0" + +docker-build-16.0-alpine: + # Official docker image. + image: docker:20.10.17 + stage: build + services: + - docker:20.10.17-dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker build --pull -f 16.0-alpine.Dockerfile -t "$CI_REGISTRY_IMAGE:16.0-alpine" . + - docker push "$CI_REGISTRY_IMAGE:16.0-alpine" + only: + - "16.0" diff --git a/16.0-alpine.Dockerfile b/16.0-alpine.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..1b65da78a367c475316e0b1e06e78aac9774be0b --- /dev/null +++ b/16.0-alpine.Dockerfile @@ -0,0 +1,67 @@ +FROM surnet/alpine-wkhtmltopdf:3.16.0-0.12.6-small as wkhtmltopdf + +FROM python:3.10-alpine AS builder +RUN apk add --no-cache python3-dev libffi-dev gcc musl-dev make postgresql-dev openldap-dev cyrus-sasl-dev jpeg-dev zlib-dev libsass-dev g++ +RUN pip install wheel +RUN echo 'INPUT ( libldap.so )' > /usr/lib/libldap_r.so +RUN pip wheel --wheel-dir=/svc/wheels -r https://raw.githubusercontent.com/odoo/odoo/master/requirements.txt +RUN pip wheel --wheel-dir=/svc/wheels phonenumbers simplejson openupgradelib PyYAML + + +FROM python:3.10-alpine AS final +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PGDATABASE=odoo + +RUN set -x; \ + apk add --no-cache \ + bash \ + git \ + libjpeg-turbo \ + libsass \ + libstdc++ \ + postgresql-client + +# Copy wkhtmltopdf files from docker-wkhtmltopdf image +COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf + +COPY --from=builder /svc /svc +RUN pip3 install --no-index --find-links=/svc/wheels -r https://raw.githubusercontent.com/odoo/odoo/master/requirements.txt &&\ + pip3 install --no-index --find-links=/svc/wheels phonenumbers simplejson openupgradelib PyYAML + +# Add Git Known Hosts +COPY ./ssh_known_git_hosts /root/.ssh/known_hosts + +# Install Odoo and remove not French translations and .git directory to limit amount of data used by container +RUN set -x; \ + adduser -h /opt/odoo -D odoo &&\ + /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" &&\ + # git clone -b 16.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\ + git clone -b master --depth 1 https://github.com/odoo/odoo.git /opt/odoo/odoo &&\ + 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 &&\ + chown -R odoo:odoo /opt/odoo + +# Copy entrypoint script and Odoo configuration file +COPY ./entrypoint.sh / +COPY ./odoo.conf /opt/odoo/etc/odoo.conf +RUN chown odoo:odoo /opt/odoo/etc/odoo.conf + +# Mount /opt/odoo/data to allow restoring filestore +VOLUME ["/opt/odoo/data/"] + +# Expose Odoo services +EXPOSE 8069 + +# Set default user when running the container +USER odoo + +# Start +ENTRYPOINT ["/entrypoint.sh"] +CMD ["odoo"] + +# Metadata +LABEL org.label-schema.schema-version="16.0" \ + org.label-schema.vendor=LeFilament \ + org.label-schema.license=Apache-2.0 \ + org.label-schema.vcs-url="https://sources.le-filament.com/lefilament/odoo_docker" diff --git a/16.0.Dockerfile b/16.0.Dockerfile index 10124c7b6a7b25e1c496895a3ad03e0d3a810199..79801a8f2df01108bf2557dcb0499eb046322610 100644 --- a/16.0.Dockerfile +++ b/16.0.Dockerfile @@ -8,8 +8,6 @@ RUN set -x; \ FROM python:3.10-slim-bullseye AS final -MAINTAINER Le Filament <https://le-filament.com> - ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ PGDATABASE=odoo