繁体   English   中英

使用 docker-compose 挂载卷时出错

[英]Error when mount a volume using docker-compose

我正在使用 docker-compose 来设置 domserver。我可以使用 dockerhub 的映像成功运行 domserver。但是,当我想将目录挂载到容器中时,它会弹出如下错误消息:

dj-domserver_1  | /scripts/start.sh: line 29: cd: /opt/domjudge/domserver: No such file or directory

https://i.stack.imgur.com/NVnWW.png

目录 domjudgeKChen 是由 dockerhub (domserver6.0.3) 的映像设置的容器中的 cp,这是 yml 文件中的 domserver 部分:

dj-domserver:
                image: domjudge/domserver:6.0.3
                volumes:
                        - /sys/fs/cgroup:/sys/fs/cgroup:ro
                        - ~/domjudgeKChen/opt/domjudge:/opt/domjudge
                environment:
                        - CONTAINER_TIMEZONE=Asia/Taipei
                        - MYSQL_ROOT_PASSWORD=rootpw
                        - MYSQL_DATABASE=domjudge
                        - MYSQL_USER=domjudge
                        - MYSQL_PASSWORD=djpw
                networks:
                        dj-db:
                        dj-judgedaemons:
                depends_on:
                  - phpmyadmin
                  - dj-mariadb
                ports:
                        - 9090:80
                links:
                        - dj-mariadb:mariadb
                restart: always

这是整个.yml 文件代码:

http://codepad.org/7jN5UdG8

另一个问题是我无法使用这个yml文件设置judgehost。这是使用docker-compose up时的错误信息

error: Authentication failed (error 401) while contacting http://domserver/api/v4/judgehosts. Check credentials in restapi.secret.

https://i.stack.imgur.com/xSEjm.png

如果我在 yml 中注释掉第 22 行,并且 domserver 可以使用 docker-compose 进行设置,那么 mariadb,phpmyadmin 也可以。

请帮我将目录挂载到容器中并成功设置judgehost映像。谢谢!

IIRC 你必须对你的卷使用绝对引用; 你不能用~

将卷挂载中的~替换为绝对路径,并将其作为卷定义中/domjudgeKChen/opt/domjudge的前缀。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM