From 609ca40e6967201957a28e213ff8a32c3227866d Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Mon, 28 May 2018 17:30:36 +0200 Subject: [PATCH 1/9] Tweaked the Docker configuration --- .dockerignore | 1 + Dockerfile | 40 +++++++++++++++++++++++++------------ contrib/nginx.conf | 2 +- docker-compose.yml | 49 +++++++++++++++++++++++++++++++++------------- 4 files changed, 65 insertions(+), 27 deletions(-) diff --git a/.dockerignore b/.dockerignore index 5d4b8fcc0..10cb02760 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,7 @@ storage data Dockerfile +docker-compose.yml .dockerignore .git .gitignore diff --git a/Dockerfile b/Dockerfile index c076c6672..ec457f905 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,33 @@ -FROM php:7.2-fpm-alpine +FROM php:7.2.6-fpm-alpine -RUN apk add --no-cache git imagemagick \ - && apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libtool \ - && docker-php-ext-install pdo_mysql pcntl \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && apk del --purge .build +ARG COMPOSER_VERSION="1.6.5" +ARG COMPOSER_CHECKSUM="67bebe9df9866a795078bb2cf21798d8b0214f2e0b2fd81f2e907a8ef0be3434" -RUN curl -sS https://getcomposer.org/installer | php \ - && mv composer.phar /usr/local/bin/ \ - && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer +RUN apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libtool && \ + apk --no-cache add imagemagick git && \ + docker-php-ext-install pdo_mysql pcntl && \ + pecl install imagick && \ + docker-php-ext-enable imagick pcntl imagick && \ + curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /tmp/composer.phar && \ + echo "${COMPOSER_CHECKSUM} /tmp/composer.phar" | sha256sum -c - && \ + install -m0755 -o root -g root /tmp/composer.phar /usr/bin/composer.phar && \ + ln -sf /usr/bin/composer.phar /usr/bin/composer && \ + mkdir -p /var/www && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/sessions && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/views && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/cache && \ + rm /tmp/composer.phar && \ + apk del --purge .build -WORKDIR /var/www/html -COPY . . +COPY --chown=www-data . /var/www/html/pixelfed/ + +WORKDIR /var/www/html/pixelfed +USER www-data RUN composer install --prefer-source --no-interaction + +VOLUME ["/var/www/html"] +USER root ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}" diff --git a/contrib/nginx.conf b/contrib/nginx.conf index c39103d5a..39cfbdf4d 100644 --- a/contrib/nginx.conf +++ b/contrib/nginx.conf @@ -4,7 +4,7 @@ server { server_name localhost; index index.php index.html; - root /var/www/html/public; + root /var/www/html/pixelfed/public; location / { try_files $uri $uri/ /index.php; diff --git a/docker-compose.yml b/docker-compose.yml index d9c39bd2f..b49b77a77 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,37 +3,58 @@ version: '3' services: nginx: image: nginx:alpine + networks: + - internal + - external ports: - 3000:80 volumes: - - .:/var/www/html + - "php-storage:/var/www/html" - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - - php + - php + php: build: . + image: pixelfed volumes: - - ./storage:/var/www/html/storage - depends_on: - - mysql - - redis + - "php-storage:/var/www/html" + networks: + - internal environment: - DB_HOST=mysql - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME} - - DB_PASSWORD=${DB_PASSWORD} + - DB_USERNAME=${DB_USERNAME:-pixelfed} + - DB_PASSWORD=${DB_PASSWORD:-pixelfed} - REDIS_HOST=redis - - APP_KEY=${APP_KEY} + - APP_KEY=${APP_KEY:-app_key} + mysql: image: mysql:5.7 + networks: + - internal environment: - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME} - - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_USER=${DB_USERNAME:-pixelfed} + - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} + - MYSQL_RANDOM_ROOT_PASSWORD="true" volumes: - - ./docker-volumes/mysql:/var/lib/mysql + - "mysql-data:/var/lib/mysql" + redis: image: redis:alpine volumes: - - ./docker-volumes/redis:/data -... + - "redis-data:/data" + networks: + - internal + +volumes: + redis-data: + mysql-data: + php-storage: + +networks: + internal: + internal: true + external: + driver: bridge From 9baa229a120fc5d4dec1099f7ecc90af81391a32 Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Tue, 29 May 2018 09:20:17 +0200 Subject: [PATCH 2/9] Simplified Dockerfile --- Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index ec457f905..91e37d04c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,12 +13,12 @@ RUN apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libt install -m0755 -o root -g root /tmp/composer.phar /usr/bin/composer.phar && \ ln -sf /usr/bin/composer.phar /usr/bin/composer && \ mkdir -p /var/www && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/sessions && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/views && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed/storage/framework/cache && \ + install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed \ + /var/www/html/pixelfed/storage \ + /var/www/html/pixelfed/storage/framework \ + /var/www/html/pixelfed/storage/framework/sessions \ + /var/www/html/pixelfed/storage/framework/views \ + /var/www/html/pixelfed/storage/framework/cache && \ rm /tmp/composer.phar && \ apk del --purge .build From 32d54ecf658c9f0440fdffdb253743f185e99d18 Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Tue, 29 May 2018 10:25:25 +0200 Subject: [PATCH 3/9] Fixed logs location in Dockerfile, added docker-compose-running.yml for running the application --- Dockerfile | 1 + docker-compose-running.yml | 64 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 docker-compose-running.yml diff --git a/Dockerfile b/Dockerfile index 91e37d04c..bbb285efb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,7 @@ RUN apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libt install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed \ /var/www/html/pixelfed/storage \ /var/www/html/pixelfed/storage/framework \ + /var/www/html/pixelfed/storage/logs \ /var/www/html/pixelfed/storage/framework/sessions \ /var/www/html/pixelfed/storage/framework/views \ /var/www/html/pixelfed/storage/framework/cache && \ diff --git a/docker-compose-running.yml b/docker-compose-running.yml new file mode 100644 index 000000000..8e9ccd4c1 --- /dev/null +++ b/docker-compose-running.yml @@ -0,0 +1,64 @@ +--- +version: '3' +services: + nginx: + image: nginx:alpine + networks: + - internal + - external + ports: + - 3000:80 + volumes: + - "php-storage:/var/www/html" + - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf + depends_on: + - php + + php: + build: . + image: pixelfed + volumes: + - "php-storage:/var/www/html" + networks: + - internal + environment: + - DB_HOST=mysql + - DB_DATABASE=pixelfed + - DB_USERNAME=${DB_USERNAME:-pixelfed} + - DB_PASSWORD=${DB_PASSWORD:-pixelfed} + - REDIS_HOST=redis + - APP_KEY=${APP_KEY} + env_file: + - ./.env + + mysql: + image: mysql:5.7 + networks: + - internal + environment: + - MYSQL_DATABASE=pixelfed + - MYSQL_USER=${DB_USERNAME:-pixelfed} + - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} + - MYSQL_RANDOM_ROOT_PASSWORD="true" + env_file: + - ./.env + volumes: + - "mysql-data:/var/lib/mysql" + + redis: + image: redis:alpine + volumes: + - "redis-data:/data" + networks: + - internal + +volumes: + redis-data: + mysql-data: + php-storage: + +networks: + internal: + internal: true + external: + driver: bridge From 407095c13b72b22ce8f8e5657e88feaf28f894e7 Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Tue, 29 May 2018 10:26:44 +0200 Subject: [PATCH 4/9] Also added the second docker-compose configuration file to dockerignore --- .dockerignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 10cb02760..e47e3356b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ storage data Dockerfile -docker-compose.yml +docker-compose*.yml .dockerignore .git .gitignore From 5117f003fe547968aa1fbca851190b276d6dcec2 Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Tue, 29 May 2018 12:30:50 +0200 Subject: [PATCH 5/9] Revert the changes to the docker-compose.yml, we can merge the files later if necessary --- docker-compose.yml | 49 +++++++++++++--------------------------------- 1 file changed, 14 insertions(+), 35 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b49b77a77..d9c39bd2f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,58 +3,37 @@ version: '3' services: nginx: image: nginx:alpine - networks: - - internal - - external ports: - 3000:80 volumes: - - "php-storage:/var/www/html" + - .:/var/www/html - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - - php - + - php php: build: . - image: pixelfed volumes: - - "php-storage:/var/www/html" - networks: - - internal + - ./storage:/var/www/html/storage + depends_on: + - mysql + - redis environment: - DB_HOST=mysql - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME:-pixelfed} - - DB_PASSWORD=${DB_PASSWORD:-pixelfed} + - DB_USERNAME=${DB_USERNAME} + - DB_PASSWORD=${DB_PASSWORD} - REDIS_HOST=redis - - APP_KEY=${APP_KEY:-app_key} - + - APP_KEY=${APP_KEY} mysql: image: mysql:5.7 - networks: - - internal environment: - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME:-pixelfed} - - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} - - MYSQL_RANDOM_ROOT_PASSWORD="true" + - MYSQL_USER=${DB_USERNAME} + - MYSQL_PASSWORD=${DB_PASSWORD} volumes: - - "mysql-data:/var/lib/mysql" - + - ./docker-volumes/mysql:/var/lib/mysql redis: image: redis:alpine volumes: - - "redis-data:/data" - networks: - - internal - -volumes: - redis-data: - mysql-data: - php-storage: - -networks: - internal: - internal: true - external: - driver: bridge + - ./docker-volumes/redis:/data +... From 1fec6737280bfc4cdb179992838e0f1ee24cedfd Mon Sep 17 00:00:00 2001 From: Moritz Heiber Date: Thu, 31 May 2018 21:43:14 +0200 Subject: [PATCH 6/9] Replaced docker-compose.yml, run composer as root, create needed directories for application storage, revert changes to nginx.conf --- Dockerfile | 25 +++++++-------- contrib/nginx.conf | 2 +- docker-compose-running.yml | 64 -------------------------------------- docker-compose.yml | 55 +++++++++++++++++++++++--------- 4 files changed, 52 insertions(+), 94 deletions(-) delete mode 100644 docker-compose-running.yml diff --git a/Dockerfile b/Dockerfile index bbb285efb..c9ee294a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,23 +12,20 @@ RUN apk add --no-cache --virtual .build build-base autoconf imagemagick-dev libt echo "${COMPOSER_CHECKSUM} /tmp/composer.phar" | sha256sum -c - && \ install -m0755 -o root -g root /tmp/composer.phar /usr/bin/composer.phar && \ ln -sf /usr/bin/composer.phar /usr/bin/composer && \ - mkdir -p /var/www && \ - install -d -m0755 -o www-data -g www-data /var/www/html/pixelfed \ - /var/www/html/pixelfed/storage \ - /var/www/html/pixelfed/storage/framework \ - /var/www/html/pixelfed/storage/logs \ - /var/www/html/pixelfed/storage/framework/sessions \ - /var/www/html/pixelfed/storage/framework/views \ - /var/www/html/pixelfed/storage/framework/cache && \ rm /tmp/composer.phar && \ - apk del --purge .build + apk --no-cache del --purge .build -COPY --chown=www-data . /var/www/html/pixelfed/ +COPY . /var/www/html/ -WORKDIR /var/www/html/pixelfed -USER www-data -RUN composer install --prefer-source --no-interaction +WORKDIR /var/www/html +RUN install -d -m0755 -o www-data -g www-data \ + /var/www/html/storage \ + /var/www/html/storage/framework \ + /var/www/html/storage/logs \ + /var/www/html/storage/framework/sessions \ + /var/www/html/storage/framework/views \ + /var/www/html/storage/framework/cache && \ + composer install --prefer-source --no-interaction VOLUME ["/var/www/html"] -USER root ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}" diff --git a/contrib/nginx.conf b/contrib/nginx.conf index 39cfbdf4d..c39103d5a 100644 --- a/contrib/nginx.conf +++ b/contrib/nginx.conf @@ -4,7 +4,7 @@ server { server_name localhost; index index.php index.html; - root /var/www/html/pixelfed/public; + root /var/www/html/public; location / { try_files $uri $uri/ /index.php; diff --git a/docker-compose-running.yml b/docker-compose-running.yml deleted file mode 100644 index 8e9ccd4c1..000000000 --- a/docker-compose-running.yml +++ /dev/null @@ -1,64 +0,0 @@ ---- -version: '3' -services: - nginx: - image: nginx:alpine - networks: - - internal - - external - ports: - - 3000:80 - volumes: - - "php-storage:/var/www/html" - - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf - depends_on: - - php - - php: - build: . - image: pixelfed - volumes: - - "php-storage:/var/www/html" - networks: - - internal - environment: - - DB_HOST=mysql - - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME:-pixelfed} - - DB_PASSWORD=${DB_PASSWORD:-pixelfed} - - REDIS_HOST=redis - - APP_KEY=${APP_KEY} - env_file: - - ./.env - - mysql: - image: mysql:5.7 - networks: - - internal - environment: - - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME:-pixelfed} - - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} - - MYSQL_RANDOM_ROOT_PASSWORD="true" - env_file: - - ./.env - volumes: - - "mysql-data:/var/lib/mysql" - - redis: - image: redis:alpine - volumes: - - "redis-data:/data" - networks: - - internal - -volumes: - redis-data: - mysql-data: - php-storage: - -networks: - internal: - internal: true - external: - driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index d9c39bd2f..8e9ccd4c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,37 +3,62 @@ version: '3' services: nginx: image: nginx:alpine + networks: + - internal + - external ports: - - 3000:80 + - 3000:80 volumes: - - .:/var/www/html - - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf + - "php-storage:/var/www/html" + - ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - - php + - php + php: build: . + image: pixelfed volumes: - - ./storage:/var/www/html/storage - depends_on: - - mysql - - redis + - "php-storage:/var/www/html" + networks: + - internal environment: - DB_HOST=mysql - DB_DATABASE=pixelfed - - DB_USERNAME=${DB_USERNAME} - - DB_PASSWORD=${DB_PASSWORD} + - DB_USERNAME=${DB_USERNAME:-pixelfed} + - DB_PASSWORD=${DB_PASSWORD:-pixelfed} - REDIS_HOST=redis - APP_KEY=${APP_KEY} + env_file: + - ./.env + mysql: image: mysql:5.7 + networks: + - internal environment: - MYSQL_DATABASE=pixelfed - - MYSQL_USER=${DB_USERNAME} - - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_USER=${DB_USERNAME:-pixelfed} + - MYSQL_PASSWORD=${DB_PASSWORD:-pixelfed} + - MYSQL_RANDOM_ROOT_PASSWORD="true" + env_file: + - ./.env volumes: - - ./docker-volumes/mysql:/var/lib/mysql + - "mysql-data:/var/lib/mysql" + redis: image: redis:alpine volumes: - - ./docker-volumes/redis:/data -... + - "redis-data:/data" + networks: + - internal + +volumes: + redis-data: + mysql-data: + php-storage: + +networks: + internal: + internal: true + external: + driver: bridge From 6c0817a5729823cc688b0b2a9f7832fe1dfef3ed Mon Sep 17 00:00:00 2001 From: trwnh Date: Sun, 3 Jun 2018 01:06:26 -0500 Subject: [PATCH 7/9] Fix #156 --- resources/assets/sass/custom.scss | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/resources/assets/sass/custom.scss b/resources/assets/sass/custom.scss index a972f29d1..c40880736 100644 --- a/resources/assets/sass/custom.scss +++ b/resources/assets/sass/custom.scss @@ -61,32 +61,10 @@ body, button, input, textarea { } .card.status-container .status-comments { - height: 220px; overflow-y: scroll; border-bottom:1px solid rgba(0, 0, 0, 0.1); } -.card.status-container.orientation-square .status-comments { - height: 360px !important; -} - - -.card.status-container.orientation-portrait .status-comments { - height: 528px !important; -} - -.card.status-container.orientation-landscape .status-photo img { - max-height: 451px !important; -} - -.card.status-container.orientation-square .status-photo img { - max-height: 601px !important; -} - -.card.status-container.orientation-portrait .status-photo img { - max-height: 772px !important; -} - .no-caret.dropdown-toggle { text-decoration: none !important; } From b1a46f9b1596a865a2683c26ea8a9d4b7102c28b Mon Sep 17 00:00:00 2001 From: trwnh Date: Sun, 3 Jun 2018 01:17:27 -0500 Subject: [PATCH 8/9] Remove unnecessary block definition Default display model is already block, so need to redefine it --- resources/assets/sass/custom.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/assets/sass/custom.scss b/resources/assets/sass/custom.scss index c40880736..99ceeb8da 100644 --- a/resources/assets/sass/custom.scss +++ b/resources/assets/sass/custom.scss @@ -56,7 +56,6 @@ body, button, input, textarea { } .card.status-container .status-photo { - display: block !important; margin: auto !important; } From 32fa4c2e0b2f38391fd8647665a8fa9659201c8d Mon Sep 17 00:00:00 2001 From: trwnh Date: Sun, 3 Jun 2018 01:20:06 -0500 Subject: [PATCH 9/9] Singular footer margin Remove complexity and unnecessarily large gap --- resources/views/layouts/partial/footer.blade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/layouts/partial/footer.blade.php b/resources/views/layouts/partial/footer.blade.php index 7cc7f6551..382d513b4 100644 --- a/resources/views/layouts/partial/footer.blade.php +++ b/resources/views/layouts/partial/footer.blade.php @@ -1,6 +1,6 @@ -