Skip to content
Snippets Groups Projects
Dockerfile 1.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jonas Leder's avatar
    Jonas Leder committed
    # Bootstrap SCSS
    FROM node:latest AS buildJS
    
    WORKDIR /build
    COPY . /build
    
    RUN mkdir /build/public/js
    
    RUN mkdir /build/public/css
    
    jonasled's avatar
    jonasled committed
    RUN yarn install
    
    Jonas Leder's avatar
    Jonas Leder committed
    # Install PHP dependencies
    
    Jonas Leder's avatar
    Jonas Leder committed
    FROM composer:latest AS composer
    WORKDIR /build
    
    Jonas Leder's avatar
    Jonas Leder committed
    COPY --from=buildJS /build /build
    
    Jonas Leder's avatar
    Jonas Leder committed
    RUN cd /build/public/API && composer install
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    
    # Prepare Webserver
    
    FROM php:8-apache-buster
    
    
    # |--------------------------------------------------------------------------
    
    # | install php extensions
    
    # |--------------------------------------------------------------------------
    
    RUN docker-php-ext-install mysqli
    
    
    # |--------------------------------------------------------------------------
    
    # | enable production php ini
    
    # |--------------------------------------------------------------------------
    
    RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    # |--------------------------------------------------------------------------
    
    # | copy website from node build
    
    Jonas Leder's avatar
    Jonas Leder committed
    # |--------------------------------------------------------------------------
    
    Jonas Leder's avatar
    Jonas Leder committed
    COPY --from=composer /build/public /var/www/html
    
    jonasled's avatar
    jonasled committed
    # |--------------------------------------------------------------------------
    # | enable apache modules
    # |--------------------------------------------------------------------------
    RUN a2enmod headers rewrite
    
    
    jonasled's avatar
    jonasled committed
    # |--------------------------------------------------------------------------
    # | enable metrics
    # |--------------------------------------------------------------------------
    RUN apt update && apt install curl
    HEALTHCHECK CMD curl --fail http://localhost || exit 1  
    
    
    Jonas Leder's avatar
    Jonas Leder committed
    # |--------------------------------------------------------------------------
    
    # | expose http port
    
    # |--------------------------------------------------------------------------
    
    EXPOSE 80