41 lines
No EOL
919 B
Docker
41 lines
No EOL
919 B
Docker
FROM php:8.4-cli
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
unzip \
|
|
libzip-dev \
|
|
libsqlite3-dev \
|
|
sqlite3 \
|
|
&& docker-php-ext-install zip pdo_sqlite \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy composer files
|
|
COPY composer.json composer.lock ./
|
|
|
|
# Install PHP dependencies
|
|
RUN composer install --no-dev --optimize-autoloader --no-interaction
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Create non-root user
|
|
RUN groupadd -r appuser && useradd -r -g appuser appuser
|
|
|
|
# Set permissions
|
|
RUN chmod +x bin/check-and-post \
|
|
&& mkdir -p storage \
|
|
&& touch storage/database.sqlite \
|
|
&& chmod 666 storage/database.sqlite \
|
|
&& chmod 755 storage \
|
|
&& chown -R appuser:appuser /app
|
|
|
|
USER appuser
|
|
|
|
CMD ["php", "-f", "bin/check-and-post"] |