Dockerfile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. FROM python:2.7.11-alpine
  2. # If set only these languages will be included. Format:
  3. # <language_code> or <language_code>\|<language_code>
  4. ARG LANGUAGES
  5. # Install less compiler
  6. RUN apk add --update nodejs \
  7. && npm install -g less less-plugin-clean-css \
  8. && ln -s `which nodejs` /bin/node \
  9. && ln -s `which lessc` /bin/lessc
  10. # Install Odoo and it's dependencies in one go
  11. ENV ODOO_BRANCH 8.0
  12. RUN apk add --update tar curl alpine-sdk postgresql-client postgresql postgresql-dev \
  13. python-dev jpeg jpeg-dev zlib-dev libxml2-dev libxslt libxml2 \
  14. libxslt-dev openldap-dev libffi-dev linux-headers git \
  15. && mkdir /opt \
  16. && cd /opt/ \
  17. && git clone --branch ${ODOO_BRANCH} --depth 1 --progress https://github.com/odoo/odoo.git \
  18. && cd odoo/ \
  19. && if [ "${LANGUAGES}" != "" ]; then \
  20. find . -regex "^\./.*/i18n/.*\.po$" ! -regex "^\./.*/i18n/\(${LANGUAGES}\)\.po$" -exec rm -f {} \; ; \
  21. fi \
  22. && pip install --upgrade pip \
  23. && CFLAGS="$CFLAGS -L/lib" pip install --no-cache-dir pillow \
  24. && pip install --no-cache-dir . \
  25. && pip install --upgrade \
  26. cryptography \
  27. inotify \
  28. watchdog \
  29. psycogreen \
  30. psycopg2 \
  31. gevent \
  32. pyinotify \
  33. num2words \
  34. phonenumbers \
  35. && adduser -S odoo \
  36. && chown -R odoo /opt/odoo \
  37. && cp /usr/bin/pg_dump /tmp \
  38. && cp /usr/bin/pg_restore /tmp \
  39. && apk del tar curl alpine-sdk postgresql postgresql-dev python-dev jpeg-dev \
  40. zlib-dev libxml2-dev libxslt-dev openldap-dev linux-headers git \
  41. && mv /tmp/pg_dump /usr/bin/pg_dump \
  42. && mv /tmp/pg_restore /usr/bin/pg_restore
  43. #RUN if [ ! -f /urs/local/bin/openerp-gevent ]; then \
  44. # curl -o /usr/local/bin/openerp-gevent -SL https://raw.githubusercontent.com/odoo/odoo/${ODOO_BRANCH}/openerp-gevent \
  45. # && chmod a+x /usr/local/bin/openerp-gevent \
  46. # ; fi
  47. # Create additional Odoo directories
  48. RUN mkdir -p /var/lib/odoo /etc/odoo /opt/odoo/custom-addons \
  49. && chown odoo /var/lib/odoo /etc/odoo /opt/odoo/custom-addons
  50. # Create Odoo configuration
  51. COPY ./openerp-server.conf /etc/odoo/
  52. RUN chown odoo /etc/odoo/openerp-server.conf
  53. ENV OPENERP_SERVER /etc/odoo/openerp-server.conf
  54. COPY ./entrypoint.sh /
  55. # Mount
  56. VOLUME ["/var/lib/odoo", "/opt/odoo/custom-addons"]
  57. # Expose Odoo services
  58. EXPOSE 8069 8071
  59. USER odoo
  60. ENTRYPOINT ["/entrypoint.sh"]
  61. CMD ["openerp-server"]