FROM apache/apisix:3.6.0-debian # Switch to root user for package installation and setup USER root # Install additional tools needed for Cloudron RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget sudo --no-install-recommends && rm -rf /var/lib/apt/lists/* # Set up directory structure following Cloudron conventions RUN mkdir -p /app/code /app/data # Copy APISIX to Cloudron app directory RUN cp -r /usr/local/apisix/. /app/code/ && \ mkdir -p /app/code/bin && \ cp /usr/bin/apisix /app/code/bin/ # Copy configuration template COPY config.yaml /app/code/conf/config.yaml # Copy start script COPY start.sh /app/code/start.sh RUN chmod +x /app/code/start.sh # Set proper permissions RUN groupadd -r cloudron && useradd -r -g cloudron cloudron && chown -R cloudron:cloudron /app/code /app/data # Configure working directory WORKDIR /app/code # Expose ports EXPOSE 9080 9443 # Start the application as cloudron user CMD ["/usr/bin/sudo", "-E", "-u", "cloudron", "/app/code/start.sh"]