Error after cloning docker project from GitLab
I am currently working with docker for the first time the last month. I created a project with these 2 images:
- https://hub.docker.com/_/intersystems-iris-data-platform (for backend)
- https://hub.docker.com/_/nginx (for frontend)
My docker-compose.yml looks like this:
version: '2'
services:
frontend:
container_name: frontend
build:
context: ./container/frontend
dockerfile: Dockerfile.yaml
ports:
- "8080:80"
backend:
container_name: iris
build:
context: ./container/IRISDataPlatform
dockerfile: Dockerfile.yaml
volumes:
- ./container/IRISDataPlatform/ext:/external
ports:
- "9091:51773"
- "9092:52773"
environment:
- ISC_DATA_DIRECTORY=/external/irissys
- ICM_SENTINEL_DIR=/external
command: --password-file /external/password.txt
The volume is used to store backend data persistent.
I created a new repo at GitLab and pushed everything there. Including the volume directory, which has the data in it, so everyone who clones this project has my test data available.
So I cloned the repo to test whether everything is working fine or not. I built and started my cloned project with docker-compose, but the backend-container exits everytime with:
[ERROR] Command "iris start IRIS quietly" exited with status 256
07/07/20-03:01:12:325 (373) 0 [Utility.Event] ISC_DATA_DIRECTORY=/external/irissys
07/07/20-03:01:12:332 (373) 0 [Utility.Event] Executing iris qlist
07/07/20-03:01:12:378 (373) 0 [Utility.Event] Versions are the same
07/07/20-03:01:12:382 (373) 0 [Utility.Event] Source /usr/irissys: 2020.2.0.204.0com
07/07/20-03:01:12:385 (373) 0 [Utility.Event] Destination /external/irissys: 2020.2.0.204.0com
07/07/20-03:01:12:388 (373) 0 [Utility.Event] Executing iris update IRIS directory=/usr/irissys datadir=/external/irissys versionid=2020.2.0.204.0com
07/07/20-03:01:12:412 (373) 0 [Utility.Event] Executing find /usr/irissys/ -type d -exec chmod ugo-w {} +
07/07/20-03:01:12:463 (373) 0 [Utility.Event] Executing chmod ugo-w /usr/irissys/
[ERROR] Possible causes:
[ERROR] - Incorrect user/group ownership of IRIS binaries
[ERROR] - Insufficient write permissions to ISC_DATA_DIRECTORY
[FATAL] Error starting InterSystems IRIS
So there seems to be a permission issue, but if I try to run the original project (which I created first and then pushed it to GitLab) everything is working fine and there is no such error.
Original project path: C:\Users\user1\Desktop\DockerPractice\DockerProject
Cloned project path: C:\Users\user1\Desktop\DockerPractice\test\containerexample
I dont know where my fault is and what I should try to fix it. I googled it already but havent found a solution yet.
Thanks in advance
The error says almost everything, you have a permission issue. While you have Windows, it's kind of a common issue.
You have to check permission flags.
But, I would not recommend using Durable %SYS at all. I suppose you use it in development right now, so, no reasons to use Durable %SYS. Ready for development image should be prepared with Dockerfile.
Thanks for your reply, Dmitriy.
I entered the container with docker exec -it and navigated to /external. With ls -l thr result is:
drwxrwxrwx 1 root root 4096 irissys
This does look good for me. I am not sure how I can fix this permission issue - Do you have a solution?
Yes, you are right. Currently I am just testing Docker and all this things are pretty new for me.
Since you are working on Windows, review the advice here: https://community.intersystems.com/post/using-intersystems-iris-containers-docker-windows
If you are seriously stuck, you might consider contacting the WRC for help. Understanding the context and your overall goal can be important in solving troubles like this -- and also preventing other troubles that you might encounter.
Erik