Dockerfile中的rUN echo与docker-compose失败

问题描述 投票:1回答:1

所以,我有以下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,但不会发生这种情况。我已经尝试在启动容器后运行它们,它们工作正常。好像我做错了什么。

另外,我不知道如何调试它。

docker docker-compose mariadb dockerfile
1个回答
0
投票

用于将nano和echo线安装到文件中的RUN命令似乎是正确的。最有可能的问题出在RUN mysql --defaults-extra-file='/home/secret' nubuilder4 < /home/nubuilder4.sql

由于您正在安装音量/家庭,因此我们无法对其进行调试。你确定这个RUN mysql ...命令成功通过了吗?

要调试:更改docker-compose.yml,而不是build:./ bin / mysql,使用image:mariadb:10.1然后连接到容器并使用mysql运行第一个命令。

© www.soinside.com 2019 - 2024. All rights reserved.