FROM node:20-bookworm-slim # Install MariaDB RUN apt-get update && apt-get install -y --no-install-recommends \ mariadb-server \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Install Node dependencies COPY package*.json ./ RUN npm ci --omit=dev # Copy app source COPY . . # Make entrypoint executable RUN chmod +x /app/entrypoint.sh # ─── KEY FIX: create ALL writable dirs while still root ─── RUN mkdir -p /data/wifiplatform/mysql \ /data/wifiplatform/storage/payment \ /run/mysqld \ /var/log/mysql \ && chown -R 1000:1000 \ /data/wifiplatform/mysql \ /data/wifiplatform/storage \ /run/mysqld \ /var/log/mysql \ /etc/mysql/mariadb.conf.d \ /var/lib/mysql # ← also hand over the default dir # ─── Tell MariaDB to use the new datadir ─── RUN echo '[mysqld]\n\ datadir = /data/wifiplatform/mysql\n\ socket = /run/mysqld/mysqld.sock\n\ port = 3306\n' > /etc/mysql/mariadb.conf.d/99-custom.cnf \ && chown 1000:1000 /etc/mysql/mariadb.conf.d/99-custom.cnf USER 1000 EXPOSE 7860 ENV PORT=7860 \ DB_HOST=localhost \ DB_PORT=3306 \ DB_NAME=wifiplatform ENTRYPOINT ["/app/entrypoint.sh"]