Compare commits

..

3 Commits

5 changed files with 54 additions and 67 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:
nginx:
container_name: nginx-nextcloud
build: ./nginx
ports:
- 80:80
- 8080:80
- 443:443
volumes:
- ${NEXTCLOUD_DIR}:/var/www/html
- ${DATA_DIR}:/data
- ./appdata/application:/var/www/html
- ./appdata/data:/data
environment:
- NEXTCLOUD_PHP_FPM_HOST=${NEXTCLOUD_PHP_FPM_HOST}
- NEXTCLOUD_DOMAIN=${NEXTCLOUD_DOMAIN}
- NEXTCLOUD_MAX_UPLOAD_SIZE=${NEXTCLOUD_MAX_UPLOAD_SIZE}
- NEXTCLOUD_PHP_FPM_HOST=nxcloud-server-1
- NEXTCLOUD_DOMAIN=localhost
- NEXTCLOUD_MAX_UPLOAD_SIZE=4G
networks:
- nextcloud
depends_on:
- php-fpm-nextcloud
- redis-nextcloud
- mariadb-nextcloud
- server
- redis
- mariadb
php-fpm-nextcloud:
container_name: php-fpm-nextcloud
server:
build:
context: ./php-fpm
tags:
- localhost/php-fpm-nextcloud:latest
- vcs.enp.one/skylab/nextcloud-server:latest
volumes:
- ${NEXTCLOUD_DIR}:/var/www/html
- ${DATA_DIR}:/data
- ./appdata/application:/var/www/html
- ./appdata/data:/data
networks:
- nextcloud
mariadb-nextcloud:
container_name: mariadb-nextcloud
mariadb:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- ./mariadb:/var/lib/mysql
- ./appdata/database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASS}
- MYSQL_PASSWORD=${MARIADB_PASS}
- MARIADB_RANDOM_ROOT_PASSWORD=true
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- nextcloud
redis-nextcloud:
container_name: redis-nextcloud
# image: redis:latest
# keydb is a fork and drop-in replacement for Redis
redis:
image: eqalpha/keydb
restart: unless-stopped
networks:
- nextcloud
cron-nextcloud:
container_name: cron-nextcloud
image: localhost/php-fpm-nextcloud:latest
restart: unless-stopped
cron:
image: vcs.enp.one/skylab/nextcloud-server:latest
command:
- bash
- -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:
- nextcloud
user: www-data
entrypoint:
- /bin/bash
volumes:
- ${NEXTCLOUD_DIR}:/var/www/html
- ${DATA_DIR}:/data
- ./appdata/application:/var/www/html
- ./appdata/data:/data
depends_on:
- php-fpm-nextcloud
- redis-nextcloud
- mariadb-nextcloud
- server
- redis
- mariadb
networks:
nextcloud:

View File

@ -1,28 +1,10 @@
FROM docker.io/library/debian:latest AS unpack
RUN apt-get update --yes
RUN apt-get install unzip --yes
RUN mkdir --parents /download
WORKDIR /download
ADD https://download.nextcloud.com/server/releases/latest.zip /download/latest.zip
RUN unzip latest.zip
FROM docker.io/library/nginx:latest AS final
FROM docker.io/library/nginx:latest
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
ADD nginx.conf.template /nginx.conf.template
ADD docker-entrypoint.sh /docker-entrypoint.sh
RUN mkdir --parents /var/www/html
WORKDIR /var/www/html
COPY --from=unpack /download/nextcloud /var/www/html/nextcloud
RUN chown -R root:root nextcloud/
RUN chmod -R 0755 nextcloud/
ENTRYPOINT ["sh", "-c", "/docker-entrypoint.sh"]

View File

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

View File

@ -15,7 +15,6 @@ RUN apt-get update && apt-get install -y \
libldap2-dev \
libsmbclient-dev \
libcurl4-openssl-dev \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Download and install the docker-php-extension-installer script
@ -65,11 +64,6 @@ COPY ./php.ini-production /usr/local/etc/php/php.ini
# Set the working directory
WORKDIR /var/www/html
RUN curl -sSLo latest.zip https://download.nextcloud.com/server/releases/latest.zip
RUN unzip latest.zip
RUN rm latest.zip
RUN chown -R www-data:www-data nextcloud/
# Expose port 9000 for PHP-FPM
# EXPOSE 9000