最近一段时间在学习 docker-compose 应用到实际项目中,端午节放假利用了其中一天的时间,从 0 开始,到能够将 express app 和 mysql-server 两个 container 运行起来,并且顺利连接数据库,遇到了很多的问题,都一一解决了。
version: '3'
services:
db:
image: mysql/mysql-server:5.7.22
ports:
- 3306:3306 // do not change to other port
volumes:
- ./schema:/docker-entrypoint-initdb.d // init database at first start mysql container, if init failed, please remove /data/db directory
- ./data/db:/var/lib/mysql
environment:
MYSQL_ROOT_HOST: "%"
MYSQL_HOST: "localhost"
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: "Pomelo"
MYSQL_USER: "pomelo" // do not use root
MYSQL_PASSWORD: "123456"
MYSQL_LOG_CONSOLE: "true"
restart: always
app:
build: .
command: npm start
links:
- db
ports:
- 3000:3000
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules // if not set, npm install will not work!
docker-compose up --build
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.