53 lines
1.3 KiB
Docker
53 lines
1.3 KiB
Docker
FROM hhvm/hhvm:latest
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www/html
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
curl \
|
|
libpng-dev \
|
|
libonig-dev \
|
|
libxml2-dev \
|
|
zip \
|
|
unzip \
|
|
supervisor \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install and configure PHP extensions (for compatibility with PHP libraries)
|
|
RUN docker-php-ext-install \
|
|
pdo \
|
|
pdo_mysql \
|
|
gd \
|
|
mbstring \
|
|
xml \
|
|
zip
|
|
|
|
# Install Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Copy application files
|
|
COPY . /var/www/html
|
|
|
|
# Install PHP dependencies
|
|
RUN composer install --no-dev --optimize-autoloader
|
|
|
|
# Make sure scripts are executable
|
|
RUN chmod +x /var/www/html/docker-start.sh
|
|
|
|
# Expose port 18000 as specified in AGENTS.md for qwen/hack
|
|
EXPOSE 18000
|
|
|
|
# Use dumb-init to handle signals properly for k8s
|
|
RUN set -eux; \
|
|
wget -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64; \
|
|
chmod +x /usr/bin/dumb-init
|
|
|
|
# Start the application
|
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
|
CMD ["hhvm", "-m", "server", "-p", "18000", "--document-root", "/var/www/html/public"]
|
|
|
|
# Health check
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
CMD curl -f http://localhost:18000/ || exit 1 |