Skip to content
Snippets Groups Projects
Dockerfile 1.88 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
    
    Jonas Leder's avatar
    Jonas Leder committed
    FROM alpine:latest
    
    
    # |--------------------------------------------------------------------------
    
    Jonas Leder's avatar
    Jonas Leder committed
    # | install dependencies
    
    # |--------------------------------------------------------------------------
    
    Jonas Leder's avatar
    Jonas Leder committed
    RUN apk update && \
        apk upgrade && \
    
        apk add apache2 php8-apache2 php8-mysqli curl && \
        rm /var/www/localhost/htdocs/
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    # |--------------------------------------------------------------------------
    
    # | copy website from node build
    
    Jonas Leder's avatar
    Jonas Leder committed
    # |--------------------------------------------------------------------------
    
    COPY --from=composer /build/public /var/www/localhost/htdocs/
    
    jonasled's avatar
    jonasled committed
    # |--------------------------------------------------------------------------
    # | enable apache modules
    # |--------------------------------------------------------------------------
    
    Jonas Leder's avatar
    Jonas Leder committed
    RUN sed -i '/LoadModule rewrite_module/s/^#//g' /etc/apache2/httpd.conf && \
        sed -i 's#AllowOverride [Nn]one#AllowOverride All#' /etc/apache2/httpd.conf
    
    jonasled's avatar
    jonasled committed
    
    
    jonasled's avatar
    jonasled committed
    # |--------------------------------------------------------------------------
    
    Jonas Leder's avatar
    Jonas Leder committed
    # | enable healthcheck
    
    jonasled's avatar
    jonasled committed
    # |--------------------------------------------------------------------------
    HEALTHCHECK CMD curl --fail http://localhost || exit 1  
    
    
    Jonas Leder's avatar
    Jonas Leder committed
    # |--------------------------------------------------------------------------
    
    # | expose http port
    
    # |--------------------------------------------------------------------------
    
    EXPOSE 80
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    # |--------------------------------------------------------------------------
    # | set entrypoint
    # |--------------------------------------------------------------------------
    COPY httpd-foreground /usr/local/bin/
    CMD ["httpd-foreground"]