【发布时间】:2018-03-30 10:48:00
【问题描述】:
我是 docker 新手,我已经创建了我的应用程序,我想发送给另一个开发人员,但我似乎无法运行它运行 docker。
它说表不存在。我已经阅读了 docker 文档,但我不明白。
没有创建表。
我做错了什么?
我的码头文件
FROM php:7.1-apache
RUN docker-php-ext-install pdo pdo_mysql
COPY ./dump.sql /docker-entrypoint-initdb.d/
我的 docker-composer
version: '2'
volumes:
logs:
driver: local
services:
slim:
build: .
working_dir: /var/www
command: php -S 0.0.0.0:8080 -t public
environment:
docker: "true"
depends_on:
- db-mysql
ports:
- 80:8080
volumes:
- .:/var/www
- logs:/var/www/logs
links:
- db-mysql
db-mysql:
image: mysql
restart: always
container_name: db-mysql
ports:
- "3307:3306"
environment:
MYSQL_DATABASE: path
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: root
MYSQL_PASSWORD: root
volumes:
- ./mysql_init:/docker-entrypoint-initdb.d
- ./dump.sql:/docker-entrypoint-initdb.d
我的 dump.sql 有
CREATE TABLE IF NOT EXIST `paths` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`lat` double DEFAULT NULL,
`long` double DEFAULT NULL,
`token` varchar(225) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
【问题讨论】:
-
我认为
dump.sql文件应该被复制到mysql图像中,而不是php:7.1-apache。 -
我不明白,请你用代码告诉我
-
我在这里写了一个答案:Dockerize MySQL with database and tables.
-
好的,但我可以在我的 Dockerfile 中有 2 个 froms,比如 FROM php 和 FROM mysql
-
您可以为每个服务定义不同的
Dockerfiles。但这意味着您必须更改build: .并使用 Dockerfile 的实际路径。