Compare commits

...

3 Commits

4 changed files with 53 additions and 42 deletions

20
Makefile Normal file
View File

@ -0,0 +1,20 @@
REPOSITORY_PROXY = vcs.enp.one/skylab/nxcloud-proxy
REPOSITORY_SERVER = vcs.enp.one/skylab/nxcloud-server
.PHONY: help docs
# source: https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
help: ## List Makefile targets
$(info Makefile documentation)
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-10s\033[0m %s\n", $$1, $$2}'
image: ## Build image
podman build ./php-fpm --tag $(REPOSITORY_SERVER):latest
podman build ./nginx --tag $(REPOSITORY_PROXY):latest
push: image ## Build and publish image
podman login $(shell echo $(REPOSITORY_SERVER) | cut -d '/' -f 1)
podman push $(REPOSITORY_SERVER):latest
podman login $(shell echo $(REPOSITORY_PROXY) | cut -d '/' -f 1)
podman push $(REPOSITORY_PROXY):latest

View File

@ -2,79 +2,70 @@
services: services:
nginx: nginx:
container_name: nginx-nextcloud
build: ./nginx build: ./nginx
ports: ports:
- 80:80 - 8080:80
- 443:443 - 443:443
volumes: volumes:
- ${NEXTCLOUD_DIR}:/var/www/html - ./appdata/application:/var/www/html
- ${DATA_DIR}:/data - ./appdata/data:/data
environment: environment:
- NEXTCLOUD_PHP_FPM_HOST=${NEXTCLOUD_PHP_FPM_HOST} - NEXTCLOUD_PHP_FPM_HOST=nxcloud-server-1
- NEXTCLOUD_DOMAIN=${NEXTCLOUD_DOMAIN} - NEXTCLOUD_DOMAIN=localhost
- NEXTCLOUD_MAX_UPLOAD_SIZE=${NEXTCLOUD_MAX_UPLOAD_SIZE} - NEXTCLOUD_MAX_UPLOAD_SIZE=4G
networks: networks:
- nextcloud - nextcloud
depends_on: depends_on:
- php-fpm-nextcloud - server
- redis-nextcloud - redis
- mariadb-nextcloud - mariadb
php-fpm-nextcloud: server:
container_name: php-fpm-nextcloud
build: build:
context: ./php-fpm context: ./php-fpm
tags: tags:
- localhost/php-fpm-nextcloud:latest - vcs.enp.one/skylab/nextcloud-server:latest
volumes: volumes:
- ${NEXTCLOUD_DIR}:/var/www/html - ./appdata/application:/var/www/html
- ${DATA_DIR}:/data - ./appdata/data:/data
networks: networks:
- nextcloud - nextcloud
mariadb-nextcloud: mariadb:
container_name: mariadb-nextcloud
image: mariadb image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes: volumes:
- ./mariadb:/var/lib/mysql - ./appdata/database:/var/lib/mysql
environment: environment:
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASS} - MARIADB_RANDOM_ROOT_PASSWORD=true
- MYSQL_PASSWORD=${MARIADB_PASS} - MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud - MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud - MYSQL_USER=nextcloud
networks: networks:
- nextcloud - nextcloud
redis-nextcloud: redis:
container_name: redis-nextcloud
# image: redis:latest
# keydb is a fork and drop-in replacement for Redis
image: eqalpha/keydb image: eqalpha/keydb
restart: unless-stopped
networks: networks:
- nextcloud - nextcloud
cron-nextcloud: cron:
container_name: cron-nextcloud image: vcs.enp.one/skylab/nextcloud-server:latest
image: localhost/php-fpm-nextcloud:latest
restart: unless-stopped
command: command:
- bash
- -c - -c
- "'while true; do php --define apc.enable_cli=1 /var/www/html/cron.php && sleep 300; done'" - "'while true; do php --define apc.enable_cli=1 /var/www/html/cron.php; sleep 300; done'"
networks: networks:
- nextcloud - nextcloud
user: www-data user: www-data
entrypoint:
- /bin/bash
volumes: volumes:
- ${NEXTCLOUD_DIR}:/var/www/html - ./appdata/application:/var/www/html
- ${DATA_DIR}:/data - ./appdata/data:/data
depends_on: depends_on:
- php-fpm-nextcloud - server
- redis-nextcloud - redis
- mariadb-nextcloud - mariadb
networks: networks:
nextcloud: nextcloud:

View File

@ -1,7 +1,7 @@
FROM docker.io/library/nginx:latest FROM docker.io/library/nginx:latest
ENV NEXTCLOUD_DOMAIN=example.com ENV NEXTCLOUD_DOMAIN=example.com
ENV NEXTCLOUD_PHP_FPM_HOST=php-fpm-nextcloud:9000 ENV NEXTCLOUD_PHP_FPM_HOST=server:9000
ENV NEXTCLOUD_MAX_UPLOAD_SIZE=512M ENV NEXTCLOUD_MAX_UPLOAD_SIZE=512M
ADD nginx.conf.template /nginx.conf.template ADD nginx.conf.template /nginx.conf.template

View File

@ -71,10 +71,10 @@ http {
# and include that list explicitly or add the file extension # and include that list explicitly or add the file extension
# only for Nextcloud like below: # only for Nextcloud like below:
include mime.types; include mime.types;
types { #types {
text/javascript js mjs; # text/javascript js mjs;
application/wasm wasm; # application/wasm wasm;
} #}
# Specify how to handle directories -- specifying `/index.php$request_uri` # Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour # here as the fallback means that Nginx always exhibits the desired behaviour