I am trying to enable CORS on a vanilla docker owncloud installation. I have successfully added
'Header set Access-Control-Allow-Origin: *'
to /var/www/owncloud/.htaccess" by executing:
docker exec -it owncloud_server /bin/bash -c "echo 'Header set Access-Control-Allow-Origin: *' >> /var/www/owncloud/.htaccess"
This works but will not survive an image rebuild.
I’ve also tried setting the OWNCLOUD_CORS_ALLOWED_DOMAINS environment
OWNCLOUD_CORS_ALLOWED_DOMAINS=['192.168.0.xxx']
or
OWNCLOUD_CORS_ALLOWED_DOMAINS=192.168.0.xxx
but this does not seem to change anything.
What is the recommended way to enable CORS in the docker owncloud instance?
.env
OWNCLOUD_VERSION=10.10
OWNCLOUD_DOMAIN=192.168.0.yyy:8080
OWNCLOUD_CORS_ALLOWED_DOMAINS=['192.168.0.xxx']
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
HTTP_PORT=8080
docker-compose.yml
version: "3"
volumes:
files:
driver: local
mysql:
driver: local
redis:
driver: local
services:
owncloud:
image: owncloud/server:${OWNCLOUD_VERSION}
container_name: owncloud_server
restart: always
ports:
- ${HTTP_PORT}:8080
depends_on:
- mariadb
- redis
environment:
- OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=mariadb
- OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
- OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
- OWNCLOUD_CORS_ALLOWED_DOMAINS=${OWNCLOUD_CORS_ALLOWED_DOMAINS}
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- files:/mnt/data
mariadb:
image: mariadb:10.6 # minimum required ownCloud version is 10.9
container_name: owncloud_mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=owncloud
command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- mysql:/var/lib/mysql
redis:
image: redis:6
container_name: owncloud_redis
restart: always
command: ["--databases", "1"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- redis:/data