使用docker-compose

时间:2019-10-01 15:01:06

标签: docker 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文件设置法官主机。这是在使用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 up和mariadb进行设置,phpmyadmin也可以。

请帮助我将目录装载到容器中,并成功设置法官主机映像。谢谢!

1 个答案:

答案 0 :(得分:0)

IIRC,您必须对卷使用绝对引用;您不能使用~

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