Seafile Pro Docker Compose Problem

Do you also have problems installing the composer Seafile Pro 9? I used the docker-compose .yml from the manual site.

Docker fails to launch elasticsearch container.

version: ‘2.0’
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root’s password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net

memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net

elasticsearch:
image: elasticsearch:7.16.2
container_name: seafile-elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- “ES_JAVA_OPTS=-Xms1g -Xmx1g”
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 2g
volumes:
- /opt/seafile-elasticsearch/data:/usr/share/elasticsearch/data # Requested, specifies the path to Elasticsearch data persistent store.
networks:
- seafile-net

seafile:
image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
container_name: seafile
ports:
- “80:80”

- “443:443” # If https is enabled, cancel the comment.

volumes:
  - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
environment:
  - DB_HOST=db
  - DB_ROOT_PASSWD=db_dev  # Requested, the value shuold be root's password of MySQL service.

- TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.

  - SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'
  - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'
  - SEAFILE_SERVER_LETSENCRYPT=false   # Whether to use https or not
  - SEAFILE_SERVER_HOSTNAME=example.seafile.com # Specifies your host name if https is enabled
depends_on:
  - db
  - memcached
  - elasticsearch
networks:
  - seafile-net

networks:
seafile-net:

Working fine here. What are the log errors?

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];

Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)

at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)

at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)

at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:398)

at java.base/java.nio.file.Files.createDirectory(Files.java:700)

at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:807)

at java.base/java.nio.file.Files.createDirectories(Files.java:793)

at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:300)

at org.elasticsearch.env.NodeEnvironment$NodeLock.(NodeEnvironment.java:224)

at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:298)

at org.elasticsearch.node.Node.(Node.java:427)

at org.elasticsearch.node.Node.(Node.java:309)

at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:234)

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:234)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:166)

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:157)

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)

at org.elasticsearch.cli.Command.main(Command.java:77)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:122)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)

For complete error details, refer to the log at /usr/share/elasticsearch/logs/docker-cluster.log

these are the logs

Looks like a permissions issue, check storage ownership/access privileges.