docker版本:
Docker version 19.03.13, build 4484c46d9d
docker-compose版本:
docker-compose version 1.17.1, build unknown
前置条件:
- 将官方docker-compose.yml中的network_mode: "host"注解掉
- docker-compose up
现象:
- mysql可以正常启动
- mysql cat库中有表
- mysql端口外部可访问
- cat服务容器不能启动,日志:cat exited with code 139
docker-compose.yml
# mail@dongguochao.com
version: '2.2'
services:
cat:
image: rolesle/cat:0.0.1
container_name: cat
######## build from Dockerfile ###########
# build:
# context: ../
# dockerfile: ./docker/Dockerfile
######## End -> build from Dockerfile ###########
environment:
# if you have your own mysql, config it here, and disable the 'mysql' config blow
- MYSQL_URL=cat-mysql # links will maintain /etc/hosts, just use 'container_name'
- MYSQL_PORT=3307
- MYSQL_USERNAME=root
- MYSQL_PASSWD=
- MYSQL_SCHEMA=cat
# 必须设置成你的机器IP地址
- SERVER_IP=172.22.58.202
working_dir: /app
volumes:
# 默认127.0.0.1,可以修改为自己真实的服务器集群地址
- "./client.xml:/data/appdatas/cat/client.xml"
# 默认使用环境变量设置。可以启用本注解,并修改为自己的配置
# - "./datasources.xml:/data/appdatas/cat/datasources.xml"
command: /bin/sh -c 'chmod +x /datasources.sh && /datasources.sh && catalina.sh run'
links:
- mysql
depends_on:
- mysql
ports:
- "8080:8080"
- "2280:2280"
#network_mode: "host"
# disable this if you have your own mysql
mysql:
container_name: cat-mysql
image: mysql:5.7.22
# expose 33306 to client (navicat)
ports:
- 3307:3306
volumes:
# change './docker/mysql/volume' to your own path
# WARNING: without this line, your data will be lost.
- "./mysql/volume:/home/syl/cat/volume/mysql"
# 第一次启动,可以通过命令创建数据库表 :
# docker exec 容器id bash -c "mysql -uroot -Dcat < /init.sql"
- "./CatApplication.sql:/init.sql"
command: mysqld -uroot --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
MYSQL_DATABASE: "cat"
MYSQL_USER: "root"
MYSQL_PASSWORD: ""
1条答案
按热度按时间mrphzbgm1#
是在windows docker desktop中跑的吧,
microsoft/WSL#4694 (comment)
https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig