| 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"] | |