【发布时间】:2018-09-11 14:30:08
【问题描述】:
所以,我有以下 docker-compose 文件:
version: "3"
services:
webserver:
build:
context: ./bin/webserver
container_name: 'png-webserver'
restart: 'always'
ports:
- "18011:80"
- "14431:443"
links:
- mysql
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
- ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
- ${LOG_DIR-./logs/apache2}:/var/log/apache2
mysql:
build: ./bin/mysql
container_name: 'png-mysql'
restart: 'always'
ports:
- "13306:3306"
volumes:
- ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql
- ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql
- ./mysqlhome:/home
environment:
MYSQL_ROOT_PASSWORD: tiger
MYSQL_DATABASE: nubuilder
MYSQL_USER: deckoff
MYSQL_PASSWORD: deeppurple
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: 'png-phpmyadmin'
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- '18080:80'
volumes:
- /sessions
以及以下 Dockerfile(用于 mariadb 容器):
FROM mariadb:10.1
RUN mysql --defaults-extra-file='/home/secret' nubuilder4 < /home/nubuilder4.sql
RUN apt-get update && apt-get install -y nano
RUN bash -c 'echo [mysqld] >> /etc/mysql/my.cnf'
RUN bash -c 'echo sql-mode=NO_ENGINE_SUBSTITUTION >> /etc/mysql/my.cnf'
简而言之 - Dockerfile 中的 RUN 命令似乎永远不会运行。我希望将 2 行附加到文件中,并安装 nano,但这些都没有发生。我尝试在启动容器后运行它们,它们工作正常。好像我做错了什么。
另外,我不知道如何调试它。
【问题讨论】:
-
当你运行它时会发生什么? MariaDB Dockerfile 是否与
docker-compose.yml中的mysql:块一起使用? -
您是否真的(重新)使用
docker-compose build构建图像? -
就是这样,看来我需要构建一个新图像,我认为 docker-compose up 也可以,似乎它只是创建容器并将它们“粘合”在一起
标签: docker docker-compose mariadb dockerfile