0

我正在尝试使用 docker 将 odoo 作为 SAAS 服务运行。我成功创建了 Odoo 映像,但是当我运行映像以构建容器时,它在启动 odoo 阶段时停止,这是命令的示例输出:

$ docker container run -it odoo:1.2

Entering The entrypoint.sh
Setting up Pip3 dependency if any
Could not open requirements file: [Errno 2] No such file or directory: '/mnt/extra-addons/requirements.txt'
Call sent for starting Odoo
Starting Odoo

这是我的 Dockerfile :

FROM ubuntu:18.04

LABEL maintainer="me"

#Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
RUN set -x; \
        apt-get update \
        && apt-get install -y --no-install-recommends \
            ca-certificates \
            curl \
            dirmngr \
            node-less \
            python3-gevent \
            python-ldap \
            python3-pip  \
            python3-setuptools \
            gnupg \
        && curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb \
        && apt install ./wkhtmltox.deb -y \
        && apt-get -y install -f --no-install-recommends \
        && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false \
        && rm -rf /var/lib/apt/lists/* wkhtmltox.deb \
        && pip3 install psycogreen==1.0

#install latest postgresql-client
RUN set -x; \
        echo 'deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main' > etc/apt/sources.list.d/pgdg.list \
        && export GNUPGHOME="$(mktemp -d)" \
        && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
        && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \
        && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \
        && gpgconf --kill all \
        && rm -rf "$GNUPGHOME" \
        && apt-get update  \
        && apt-get install -y postgresql-client \
        && rm -rf /var/lib/apt/lists/* \
        && apt update && apt-get install -y git libpq-dev libxml2-dev libxslt-dev libffi-dev gcc python3-dev libsasl2-dev python-dev libldap2-dev libssl-dev \
        && apt update && apt-get install -y npm \
        && npm install -g less less-plugin-clean-css rtlcss \
        && apt-get install -y node-less
#Create /etc/odoo directory 
RUN set -x; \
        mkdir /etc/odoo \

#Install Odoo
ENV ODOO_VERSION 12.0

#This binds to service file.So, take care
ARG ODOO_USER=odoo
ARG ODOO_USER_UID=888
ARG ODOO_USER_GID=888

RUN set -x; \
        groupadd -r -g ${ODOO_USER_GID} ${ODOO_USER} \
        && adduser --system --home=/opt/${ODOO_USER} ${ODOO_USER} --uid ${ODOO_USER_UID} --gid ${ODOO_USER_GID} \
        && su - ${ODOO_USER} -s /bin/bash -c "git clone https://MY-REPO.git" \
        && mkdir /var/log/odoo \
        && chown ${ODOO_USER}:root /var/log/odoo


COPY ./odoo-server.conf /etc/odoo/
RUN set -x; \
        chown -R ${ODOO_USER} /etc/odoo/ \
        && chmod 640 /etc/odoo/odoo-server.conf \
        && pip3 install wheel phonenumbers

#Mount /var/lib/odoo to allow restoring filestore and /mnt/extra-addons for users addons
Run set -x; \
        mkdir -p /mnt/extra-addons \
        && chown -R odoo /mnt/extra-addons \
        && pip3 install -r /opt/odoo/odoo/requirements.txt



COPY ./entrypoint.sh /
COPY ./run_odoo.sh /

#VOLUME ["/mnt/extra-addons","/opt/data_dir"]
# Expose Odoo services
EXPOSE 8069 8071 8072

# Set default user when running the container
USER ${ODOO_USER}


ENTRYPOINT ["/entrypoint.sh"]
                              

我使用了带有以下说明的入口点文件:

#!/bin/bash
#set -e
echo "Entering The entrypoint.sh"
echo "Setting up Pip3 dependency if any"
pip3 install -r /mnt/extra-addons/requirements.txt

echo "Call sent for starting Odoo"

while true; do /bin/bash run_odoo.sh; echo "Odoo Exited"; done


echo "Start the Exta bash"
exec /bin/bash

此外,run_odoo.sh 文件命令:

#!/bin/sh
echo "Starting Odoo"
exec /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo-server.conf

我被困在这一点上,如果有人可以提供帮助,我不知道为什么容器没有运行,我将不胜感激。注意:我是 docker 新手。问候

4

0 回答 0