diff --git a/Dockerfile b/Dockerfile index 83ee8aab..d1d6cba3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,49 +1,59 @@ -# ------------------- -# Build Stage 1 (npm) -# ------------------- -FROM node:alpine AS appbuild - -RUN apk add --update --no-cache p7zip - -WORKDIR /usr/src/app - -COPY ./package.json ./ -RUN npm install - -COPY . ./ -RUN npm run build:prod -# RUN npm run build - - -# ------------------------ -# Build Stage 2 (composer) -# ------------------------ -FROM composer AS apibuild - -WORKDIR /app - -COPY ./src/api ./ -RUN composer install - - -# -------------------------- -# Build Stage 3 (php-apache) -# This build takes the production build from staging builds -# -------------------------- -FROM php:7.3-apache - -ENV PROJECT /var/www/html - -RUN apt-get update && apt-get install -y sqlite3 php7.3-sqlite -RUN a2enmod rewrite expires -# RUN docker-php-ext-install pdo_mysql - -# RUN pecl install xdebug && docker-php-ext-enable xdebug -# COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini - -WORKDIR $PROJECT -COPY --from=appbuild /usr/src/app/dist ./ -RUN rm -rf ./api/* -COPY --from=apibuild /app ./api/ -RUN chmod 777 ./api -EXPOSE 80 +# ------------------- +# Build Stage 1 (npm) +# ------------------- +FROM node:alpine AS appbuild + +RUN apk add --update --no-cache \ + p7zip \ + python2 \ + build-base \ + curl \ + php7 \ + php7-json \ + php7-phar \ + php7-iconv \ + php7-openssl \ + php7-dom \ + php7-mbstring \ + php7-xml \ + php7-xmlwriter \ + php7-ctype \ + php7-tokenizer + +# Install Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +WORKDIR /usr/src/app + +COPY ./package.json ./ + +COPY . ./ + +RUN npm install + +RUN npm run build:prod +# RUN npm run build + +# -------------------------- +# Build Stage 2 (php-apache) +# This build takes the production build from staging builds +# -------------------------- +FROM php:7.3-apache + +ENV PROJECT /var/www/html + +RUN apt-get update && apt-get install -y sqlite3 php7.3-sqlite +RUN a2enmod rewrite expires +# RUN docker-php-ext-install pdo_mysql + +# RUN pecl install xdebug && docker-php-ext-enable xdebug +# COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini + +WORKDIR $PROJECT +COPY --from=appbuild /usr/src/app/dist ./ +RUN chown 33:33 ./api && chown 33:33 ./api/db && \ + mkdir ./api/logs && chown 33:33 ./api/logs + +EXPOSE 80 + +VOLUME $PROJECT/api/db diff --git a/docker-compose.yml b/docker-compose.yml index cca2b66a..6b1ca649 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,14 @@ -version: "3" - -services: - taskboard: - image: "taskboard" - build: - context: . - ports: - - "8081:80" +version: "3" + +services: + taskboard: + image: "taskboard" + build: + context: . + ports: + - "80:80" + volumes: + - database:/var/www/html/api/db + +volumes: + database: diff --git a/src/api/index.php b/src/api/index.php index 51d888e2..17a16dc5 100644 --- a/src/api/index.php +++ b/src/api/index.php @@ -11,7 +11,7 @@ require './vendor/autoload.php'; -R::setup('sqlite:taskboard.sqlite'); +R::setup('sqlite:db/taskboard.sqlite'); $container = new DI\Container(); AppFactory::setContainer($container);