在执行这一行时,我总是用代码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
问题是:您的入口点
是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