I am Working with Odoo automation. I create a Docker file for Deployment. For the file system, I am using EFS. For Container I am using ECS. I want to mount my filestore in my container. The container filestore path is
/opt/s3_bucket/filestore/enterprise
data_dir=/opt/cfs_s3_bucket
and my data_dir path which i am using in odoo.conf
Here is my docker file
FROM debian:bullseye-slim
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
RUN apt-get update
RUN apt-get install -y python3-pip && apt-get install -y python3 curl python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libjpeg-dev libpq-dev liblcms2-dev libblas-dev libatlas-base-dev fontconfig libfreetype6 libx11-6 libxext6 libxrender1 xfonts-75dpi xfonts-base
RUN echo "Python 3 version:" && python3 -c "import sys; print(sys.version)"
RUN python3 --version
RUN pip --version
RUN apt-get install -y npm
RUN npm install -g less less-plugin-clean-css
RUN apt-get install -y node-less
RUN pip3 install awscli
ENV AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID>
ENV AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY>
ENV AWS_DEFAULT_REGION=us-east-1
RUN apt-get install -y postgresql
RUN echo "host all odoo_user 0.0.0.0/0 md5" >> /etc/postgresql/13/main/pg_hba.conf
RUN echo "listen_addresses = '*'" >> /etc/postgresql/13/main/postgresql.conf
USER postgres
RUN service postgresql start \
&& psql -c "CREATE DATABASE cfs_enterprise;" \
&& psql -c "CREATE USER odoo_user WITH PASSWORD 'cfs';" \
&& psql -c "ALTER USER odoo_user superuser CREATEDB;" \
&& psql -c "GRANT ALL PRIVILEGES ON DATABASE cfs_enterprise TO odoo_user;" \
&& service postgresql stop
USER root
VOLUME /var/lib/postgresql/data
RUN groupadd -r odoo && useradd -r -g odoo -d /opt/odoo odoo
RUN mkdir -p /opt/odoo && chown -R odoo:odoo /opt/odoo
RUN mkdir -p /opt/enterprise && chown -R odoo:odoo /opt/enterprise
RUN mkdir -p /opt/custom && chown -R odoo:odoo /opt/custom
RUN mkdir -p /opt/s3_bucket && chown -R odoo:odoo /opt/s3_bucket
RUN mkdir -p /opt/s3_bucket/filestore && chown -R odoo:odoo /opt/s3_bucket/filestore
RUN mkdir -p /opt/s3_bucket/filestore/enterprise && chown -R odoo:odoo /opt/s3_bucket/filestore/enterprise
RUN mkdir -p /opt/s3fs-fuse && chown -R odoo:odoo /opt/s3fs-fuse
WORKDIR /opt
RUN ls -a
USER odoo
WORKDIR /opt/odoo
RUN git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /opt/odoo
USER odoo
WORKDIR /opt/enterprise
ARG GITLAB_ACCESS_TOKEN=<GITLAB_ACCESS_TOKEN>
RUN git clone -b 15.0 https://${GITLAB_ACCESS_TOKEN}:${GITLAB_ACCESS_TOKEN}@github.com/odoo/enterprise --single-branch /opt/enterprise
COPY ./addons /opt/custom/addons
COPY ./third_party_addons /opt/custom/third_party_addons
RUN ls -a
USER root
USER root
RUN pip3 install -r /opt/odoo/requirements.txt
RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_amd64.deb \
&& echo 'ea8277df4297afc507c61122f3c349af142f31e5 wkhtmltox.deb' | sha1sum -c - \
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
RUN echo "[options]" >> /etc/odoo.conf && \
echo "http_port = 8069" >> /etc/odoo.conf && \
echo ";admin_passwd = admin" >> /etc/odoo.conf && \
echo "db_host = localhost" >> /etc/odoo.conf && \
echo "db_port = 5432" >> /etc/odoo.conf && \
echo "db_user = odoo_user" >> /etc/odoo.conf && \
echo "db_password = password" >> /etc/odoo.conf && \
echo "db_name = db" >> /etc/odoo.conf && \
echo "data_dir=/opt/s3_bucket" >> /etc/odoo.conf && \
echo "addons_path = /opt/enterprise, /opt/odoo/addons, /opt/custom/addons, /opt/custom/third_party_addons" >> /etc/odoo.conf && \
echo "logfile = /var/log/odoo/odoo.log" >> /etc/odoo.conf
RUN chown odoo /etc/odoo.conf
RUN chmod 640 /etc/odoo.conf
RUN mkdir /var/log/odoo
RUN chown odoo:root /var/log/odoo
RUN cat /etc/odoo.conf
RUN echo "[Unit]" >> /etc/systemd/system/odoo.service && \
echo "Description = Odoo" >> /etc/systemd/system/odoo.service && \
echo "Documentation = http://www.odoo.com" >> /etc/systemd/system/odoo.service && \
echo "[Service]" >>/etc/systemd/system/odoo.service && \
echo "# Ubuntu/Debian convention:" >> /etc/systemd/system/odoo.service && \
echo "Type=simple" >> /etc/systemd/system/odoo.service && \
echo "User=odoo" >> /etc/systemd/system/odoo.service \
echo "ExecStart=/opt/odoo/odoo-bin -c /etc/odoo.conf" >> /etc/systemd/system/odoo.service \
echo "WantedBy==default.target" >> /etc/systemd/system/odoo.service
EXPOSE 8069
CMD service postgresql start && su - odoo -c "./odoo-bin -c /etc/odoo.conf"
When trying to run the container. Odoo throws throwing below error
PermissionError: [Errno 13] Permission denied: '/opt/s3_bucket/filestore/enterprise/8d'
EFS mount successfully. but after mounting it changed folder user permission to nobody
Note: I already created Access points with usersIDs