我想在Debian9的docker中使用mriadb,phpmyadmin,法官主机构建domjudge服务器,
我已经安装了docker和docker compose
这是下面的docker-compose.yml代码。
我使用docker-compose up -d
,弹出一些警告和错误。
这是整个docker-compose.yml文件的代码
http://codepad.org/souBFdFz
警告和错误消息:
WARNING: some networks were defined but are not used by any service: phpmyadmin, dj-judgedameons_1, dj-judgedameons_2
ERROR: dor domjudge_dj-judgedameons_2_1 Cannot start service dj-judgedameons_1 : OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:311:getting Starting domjudge_dj-judgedameons_1_1
...以及很多我什至无法阅读的错误消息(我认为是二进制代码或地址)
请帮助我修复它,或者是否有一种简单的方法可以用mariadb,phpmyadmin,法官主机设置domjudge服务器
谢谢!
更新资料
我已经试过几次这个文件,它的结果不尽相同,但仍然无法连接到服务器(domjudge和phpmyadmin)。
这是消息
/image/qDcDd.jpg
最佳答案
不幸的是,由于应用程序的构建方式,您实际上不可能做的事情:容器需要彼此等待,其中一些容器需要手动操作。
但是,这是一系列有效的操作,它将启动并运行所有容器。
注意:我删除了网络声明,因为它们没有添加任何值。
version: '3'
services:
dj-mariadb:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=domjudge
- MYSQL_USER=domjudge
- MYSQL_PASSWORD=djpw
command:
--max-connections=1000
dj-domserver:
image: domjudge/domserver:latest
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
environment:
- CONTAINER_TIMEZONE=Asia/Taipei
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=domjudge
- MYSQL_USER=domjudge
- MYSQL_PASSWORD=djpw
ports:
- 9090:80
links:
- dj-mariadb:mariadb
dj-judgehost:
image: domjudge/judgehost:latest
privileged: true
hostname: judgedaemon-0
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
environment:
- DAEMON_ID=0
- JUDGEDAEMON_PASSWORD=domjudge
links:
- dj-domserver:domserver
dj-judgehost_1:
image: domjudge/judgehost:latest
privileged: true
hostname: judgedaemon-1
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
environment:
- DAEMON_ID=1
- JUDGEDAEMON_PASSWORD=domjudge
links:
- dj-domserver:domserver
dj-judgehost_2:
image: domjudge/judgehost:latest
privileged: true
hostname: judgedaemon-2
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
environment:
- DAEMON_ID=2
- JUDGEDAEMON_PASSWORD=domjudge
links:
- dj-domserver:domserver
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: myadmin
ports:
- 8888:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=dj-mariadb
links:
- dj-mariadb:db
docker-compose up -d dj-mariadb
docker-compose up -d dj-domserver
docker-compose logs dj-domserver
查找以下行:
Initial admin password is ....
并保存密码。judgehost
密码:打开http://localhost:9090
并使用admin
用户和您在上一步中保存的密码登录。转到Users
,然后单击judgehost
用户。在其中将密码更改为domjudge
(根据您在docker-compose.yml中为JUDGEDAEMON_PASSWORD
设置的密码。保存数据。docker-compose up -d
docker-compose ps
输出应类似于以下内容:
Name Command State Ports
---------------------------------------------------------------------------------------------------
domjudge_dj-domserver_1 /scripts/start.sh Up 0.0.0.0:9090->80/tcp
domjudge_dj-judgehost_1 /scripts/start.sh Up
domjudge_dj-judgehost_1_1 /scripts/start.sh Up
domjudge_dj-judgehost_2_1 /scripts/start.sh Up
domjudge_dj-mariadb_1 docker-entrypoint.sh --max ... Up 3306/tcp
myadmin /run.sh supervisord -n -j ... Up 0.0.0.0:8888->80/tcp, 9000/tcp
关于docker - 关于Domjudge服务器的Docker-compose设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57531159/