当前位置: 首页 > 知识库问答 >
问题:

Dockerfile-在entrypoint中部署mysql转储

周翼
2023-03-14

在执行这一行时,我总是用代码0退出web_1:mysql-h$mysql_host-u$mysql_user-p$mysql_password$mysql_database

但是,我可以在容器创建后执行docker exec-it<>bash,在那里执行install-sampledata,它就可以工作了

我有这样的docker-compose

version: '2.1'

services:
  db:
    image: mysql:5.6.23
    volumes:
      - db-data:/var/lib/mysql/data
    env_file:
      - env
  web:
    build: .
    ports:
      - "8089:80"
    links:
      - db
    env_file:
      - env
    tty: true
volumes:
  db-data:  
FROM alexcheng/magento

ENTRYPOINT install-sampledata

和install-sampledata文件

#!/usr/bin/env bash

cd /tmp
cp /opt/magento-sample-data-1.9.1.0.tgz .
tar xvf magento-sample-data-1.9.1.0.tgz
cp -R magento-sample-data-1.9.1.0/media/* /var/www/htdocs/media/
cp -R magento-sample-data-1.9.1.0/skin/* /var/www/htdocs/skin/
chown -R www-data:www-data /var/www/htdocs/media

mysql -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < magento-sample-data-1.9.1.0/magento_sample_data_for_1.9.1.0.sql

共有1个答案

祝花蜂
2023-03-14

问题是:您的入口点install-sampledata:一个脚本,它将运行一个mysql命令和...退出!
此时容器将停止。

如果可能,最好调用该脚本,然后像在mysql Dockerfile中那样调用mysql,以便让前台进程继续运行。

或者您可以看看多阶段构建,以便用您已经烘焙的预置文件构建图像。

 类似资料:
  • 错误消息:未能部署“Dockerfile:DockerNew”:com。fasterxml。杰克逊。数据绑定。JsonMappingException:数值(4294967295)超出int的范围(-2147483648-2147483647)在[源:(okio.RealBufferedSource$1);行:8,列:34](通过引用链:com.github.dockerjava.api.mode

  • 问题内容: 我正在尝试为我的LAMP项目设置Dockerfile,但是启动MySQL时遇到了一些问题。我在Dockerfile上有以下几行: 但我不断收到此错误: 关于如何在Dockerfile构建期间设置数据库创建和转储导入的任何想法? 问题答案: 中的每条指令都在不同的层中执行(如的文档中所述)。 在中,您有三个说明。问题是MySQL服务器仅在第一个启动。在其他版本中,没有MySQL正在运行,

  • 关于如何在Dockerfile构建过程中设置数据库创建和转储导入有什么想法吗?

  • 问题内容: 在Dockerfiles中,有两个与我相似的命令:和。但是我想它们之间有一个(细微的?)差异- 否则对于同一件事有两个命令是没有任何意义的。 文档说明 CMD的主要目的是为执行中的容器提供默认值。 和为: ENTRYPOINT帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别? 问题答案: Docker有一个默认入口点,但没有默认命令。 当您像这样运行docker时:

  • 在Dockerfiles中有两个与我类似的命令:和。但我猜有一个(微妙?)它们之间的差异--否则,对同一件事使用两个命令是没有任何意义的。 文档中的状态为 CMD的主要目的是为正在执行的容器提供默认值。 入口点帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别呢?

  • 本文向大家介绍Dockerfile 部署java web的环境详解,包括了Dockerfile 部署java web的环境详解的使用技巧和注意事项,需要的朋友参考一下 Dockerfile 构建java web 环境 Dockfile 介绍: Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些D