Files
opencloud/ocis/docker/eos-ocis-dev
2021-01-20 15:41:36 +01:00
..
2021-01-20 15:41:36 +01:00
2020-11-30 16:31:38 +01:00

Docker image for oCIS development with eos

Image is based on owncloud/eos-base from eos-stack

{{< hint info >}} On MacOS do not mount a local folder to the /var/tmp/reva/ path. The fuse driver used by docker does not support extended attributes. See #182 for more details. {{< /hint >}}

Build

docker build -t owncloud/eos-ocis-dev:latest .

Publish

docker push owncloud/eos-ocis-dev:latest

Maintainer

Disclaimer

Use only for development or testing. Setup is not secured nor tested.

oCIS development on eos

Setup oCIS

To build and run your local ocis code with default storage driver

docker run --rm -ti --name ocis -v $PWD:/ocis -p 9200:9200 owncloud/eos-ocis-dev

ocis will use the owncloud storage driver and store files in the container at /var/tmp/reva/data//files

Data is here: docker exec -it ocis ll /var/tmp/reva/

Alternative: With the docker-compose.yml file in ocis repo you can also start ocis via compose:

docker-compose up -d ocis

Now try to list the running services

docker-compose exec ocis ./bin/ocis list

Setup eos storage

  1. Start the eos cluster and ocis via the compose stack
docker-compose up -d
  1. Configure to use eos storage driver instead of default storage driver
  • kill the home storage and data providers. we need to switch them to the eoshome driver:
docker-compose exec ocis ./bin/ocis kill reva-storage-home
docker-compose exec ocis ./bin/ocis kill reva-storage-home-data
  • restart them with the eoshome driver and a new layout:
docker-compose exec -e REVA_STORAGE_EOS_LAYOUT="{{substr 0 1 .Username}}/{{.Username}}" -e REVA_STORAGE_HOME_DRIVER=eoshome -d ocis ./bin/ocis run reva-storage-home
docker-compose exec -e REVA_STORAGE_EOS_LAYOUT="{{substr 0 1 .Username}}/{{.Username}}" -e REVA_STORAGE_HOME_DATA_DRIVER=eoshome -d ocis ./bin/ocis run reva-storage-home-data
  • restart the reva frontend with a new namespace (pointing to the eos storage provider) for the dav files endpoint
docker-compose exec ocis ./bin/ocis kill reva-frontend
docker-compose exec -e DAV_FILES_NAMESPACE="/eos/" -d ocis ./bin/ocis run reva-frontend
  • login with einstein / relativity, upload a file to einsteins home and verify the file is there using
docker-compose exec ocis eos ls -l /eos/dockertest/reva/users/e/einstein/
-rw-r--r--   1 einstein users              10 Jul  1 15:24 newfile.txt