From a239631e9b287c56403232974f9cf38a94b2d976 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Thu, 12 Apr 2018 07:32:44 +0300 Subject: [PATCH] Update docker build script and tools --- .env | 3 ++- .gitignore | 12 +++++------- Makefile | 6 +++--- Dockerfile => docker/Dockerfile | 13 ++++--------- tools/build | 8 ++++++++ tools/composer | 11 ++++++----- tools/npm | 14 +++++++++----- tools/sculpin | 7 +++---- 8 files changed, 40 insertions(+), 34 deletions(-) rename Dockerfile => docker/Dockerfile (56%) create mode 100755 tools/build diff --git a/.env b/.env index 1c44089..cb87474 100644 --- a/.env +++ b/.env @@ -1 +1,2 @@ -HOMEPAGE_IMAGE=homepage-php +PHP_IMAGE=homepage-php +NODE_IMAGE=node:9.11 \ No newline at end of file diff --git a/.gitignore b/.gitignore index d6faef9..749536b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ -.composer -.npm -.vagrant -/ansible/galaxy.roles/ -/output_* -/node_modules/ -/vendor/ +.idea/ +output_* +node_modules/ +var/ +vendor/ diff --git a/Makefile b/Makefile index 9aaa15c..acb17d2 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ +build-docker: + ./tools/build + build-assets: ./tools/npm run build build-site: ./tools/sculpin generate --clean --env=dev --no-interaction -build-docker: - docker build --tag homepage-php . - build: build-site build-assets watch: build-assets diff --git a/Dockerfile b/docker/Dockerfile similarity index 56% rename from Dockerfile rename to docker/Dockerfile index 2ea2b42..12d39b5 100644 --- a/Dockerfile +++ b/docker/Dockerfile @@ -1,16 +1,16 @@ FROM php:7.2-cli # Project folder -RUN mkdir -p /var/homepage +RUN mkdir -p /srv/app -WORKDIR /srv/homepage +WORKDIR /srv/app RUN apt-get update \ - && apt-get install -y git gnupg \ + && apt-get install -y git zip curl gnupg \ && rm -rf /var/lib/apt/lists/* # get composer and required tools -RUN curl -sLO https://getcomposer.org/download/1.5.2/composer.phar \ +RUN curl -sLO https://getcomposer.org/download/1.6.3/composer.phar \ && mv composer.phar /usr/local/bin/composer \ && chmod +x /usr/local/bin/composer @@ -18,8 +18,3 @@ RUN curl -sLO https://getcomposer.org/download/1.5.2/composer.phar \ RUN curl -sLO https://deployer.org/releases/v6.0.3/deployer.phar \ && mv deployer.phar /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep - -# install npm -RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - \ - && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* diff --git a/tools/build b/tools/build new file mode 100755 index 0000000..70a79cc --- /dev/null +++ b/tools/build @@ -0,0 +1,8 @@ +#!/bin/bash + +source .env + +docker build \ + --file docker/Dockerfile \ + --tag ${PHP_IMAGE} \ + $PWD diff --git a/tools/composer b/tools/composer index 1bc1b9d..43f8da1 100755 --- a/tools/composer +++ b/tools/composer @@ -2,16 +2,17 @@ source .env -mkdir -p ./.composer/cache +mkdir -p var/docker-cache/.composer docker run \ --rm \ --interactive \ --tty \ - --user $UID:$(id -g) \ + --user "$UID:$(id -g)" \ --volume /etc/passwd:/etc/passwd:ro \ --volume /etc/group:/etc/group:ro \ - --volume $PWD:/srv/homepage \ - --volume $PWD/.composer:/tmp/.composer \ + --volume $PWD:/srv/app \ + --volume $HOME:$HOME \ + --volume $PWD/var/docker-cache/.composer:/tmp/.composer \ --env COMPOSER_HOME=/tmp/.composer \ - ${HOMEPAGE_IMAGE} composer "$@" + ${PHP_IMAGE} composer "$@" diff --git a/tools/npm b/tools/npm index 1dfb260..8392179 100755 --- a/tools/npm +++ b/tools/npm @@ -2,14 +2,18 @@ source .env -mkdir -p ./.npm +mkdir -p var/docker-cache/.npm docker run \ --rm \ --interactive \ --tty \ - --user $UID:$(id -g) \ - --volume $PWD:/srv/homepage \ - --volume $PWD/.npm:/tpm/.npm \ + --user "$UID:$(id -g)" \ + --volume /etc/passwd:/etc/passwd:ro \ + --volume /etc/group:/etc/group:ro \ + --volume $PWD:/srv/app \ + --volume $HOME:$HOME \ + --volume $PWD/var/docker-cache/.npm:/tmp/.npm \ --env npm_config_cache=/tmp/.npm \ - ${HOMEPAGE_IMAGE} npm "$@" + --workdir /srv/app \ + ${NODE_IMAGE} npm "$@" diff --git a/tools/sculpin b/tools/sculpin index e302482..75ae4b0 100755 --- a/tools/sculpin +++ b/tools/sculpin @@ -6,10 +6,9 @@ docker run \ --rm \ --interactive \ --tty \ - --user "$UID" \ --init \ - --volume="$PWD:/srv/homepage" \ + --user "$UID:$(id -g)" \ + --volume="$PWD:/srv/app" \ --expose=8000 \ --publish=8000:8000 \ - ${HOMEPAGE_IMAGE} \ - ./vendor/bin/sculpin "$@" + ${PHP_IMAGE} ./vendor/bin/sculpin "$@"