Docker enable Cross-Origin Resource Sharing

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

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.