使用docker compose 构建多个镜像
- 定义docker compose
version: '' services:
composedb:
image: mysql/mysql-server
container_name: composedb
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: pwd123456
MYSQL_USER: test
MYSQL_PASSWORD: pwd123456
volumes:
- /docker/network/beta/mysql-init:/docker-entrypoint-initdb.d
web:
build: .
container_name: aspnetcore
ports:
- "8004:80"
#entrypoint: "sh ./wait-for-it.sh composedb:3306 -- sh ./aspnetcore.sh"
#command: ["./wait-for-it.sh", "composedb:3306", "--", "./aspnetcore.sh"]
depends_on:
- composedb - 修改初始化实力代码当数据库镜像初始化完毕后执行数据初始化
public static async Task SeedAsync(IApplicationBuilder ApplicationBuilder, ILoggerFactory LoggerFactory, int? retry = )
{
var retryForAvaibility = retry.Value;
using (var scope = ApplicationBuilder.ApplicationServices.CreateScope())//数据库未初始化失败会catch
{
try
{
var context = (UserContext)scope.ServiceProvider.GetService(typeof(UserContext));
var logger = (ILogger<UserContextSeed>)scope.ServiceProvider.GetService(typeof(ILogger<UserContextSeed>));
logger.LogDebug("Begin UserContextSeed SeedAsyc");
context.Database.Migrate();
if (!context.Users.Any())
{
context.Add(new Model.UserInfo { Name = "cyao", Company = "nocompany", Title = "软件工程师" });
context.SaveChanges();
}
}
catch (System.Exception ex)
{
retryForAvaibility++;
if (retryForAvaibility > )
{
var logger = LoggerFactory.CreateLogger(typeof(UserContextSeed));
logger.LogError(ex.Message);
await SeedAsync(ApplicationBuilder, LoggerFactory, retryForAvaibility);
}
}
}
} - 其他的一些问题
.高版本的MySQL 加密方法使用caching_sha2_password
.低版本的Mysql创建的用户会有权限问题
使用root用户进入到bash
然后执行:
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION; - liunx 跑到对应的docker-compose 文件路径后执行build 然后将docker-compose up起来
- docker-compose build 构建dockers-compose镜像
- docker-compose up
- docker-compose down
使用docker compose 构建多个镜像的更多相关文章
- 010.Docker Compose构建WordPress实战
一 前期规划 类型 版本 备注 WordPress镜像 wordpress:latest MySQL数据库 5.7 Docker已安装,参考<002.Docker版本及安装>. D ...
- 基于Docker Compose构建的MySQL MHA集群
Docker MySQL MHA 基于Docker 1.13.1之上构建的MySQL MHA Docker Compose Project 可快速启动GTID模式下的MasterHA集群, 主用于My ...
- docker:构建nginx+php-fpm镜像(一):构建nginx自启动镜像
步骤一:手动安装nginx环境,并记录全过程: #使用yum更新系统 yum -y update #下面编译安装tengine,查看有哪些包需要安装 #安装wget包,用于获取安装软件包 yum ...
- docker学习构建镜像---第三章节
一.docker镜像使用 运行docker容器时,使用的镜像如果在本地不存在,docker会自动从docker镜像仓库中下载,默认是从docker hub公共镜像源下载 在这里,我们需要了解:管理和使 ...
- Docker Buildx使用教程:使用Buildx构建多平台镜像
写在前边 记录一下前阵子在X86_64平台使用Docker Buildx构建多平台镜像的办法,包含但不限于构建ARM镜像. 构建环境 软件名 版本 Ubuntu 18.04.2 LTS Docker ...
- 009.Docker Compose部署及基础使用
一 Docker Compose概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后,使用单个命令,您可以从配 ...
- 一文掌握Docker Compose
目录 Docker Compose介绍 Docker Compose安装 Docker Compose基本示例 1.基本文件及目录设置 2.创建一个Dockerfile 3.通过docker-comp ...
- Docker入门(三)使用Docker Compose
Compose介绍 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 ...
- [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境
快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...
随机推荐
- error: ‘ostream_iterator’ was not declared in this scope
在代码中添加 #include <iterator>
- Qt常见错误
fatal error: QApplication: No such file or directory 在.pro文件中 添加 QT += widgets fatal error: QTcpSock ...
- zabbix简单的操作(添加主机)
zabbix是一种监控软件,我用的是centos7.5版本 Zabbix是一个基于WEB界面的提供分布式监视功能的企业级的开源解决方案. Zabbix既可以监控操作系统(Linux/Windows/A ...
- 利用urllib.urlopen向有道翻译发送数据获得翻译结果
from urllib import request,parseimport requests, sys,ssl,json ssl._create_default_https_context = ss ...
- MegaPixImage插件代码(new MegaPixImage)
/** * Mega pixel image rendering library for iOS6 Safari * * Fixes iOS6 Safari's image file renderin ...
- jvm——参数解释
https://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5 https://docs.oracle.com/java ...
- 【leetcode】Reach a Number
题目: You are standing at position 0 on an infinite number line. There is a goal at position target. O ...
- hdu_3466(01背包)
其实,就是让C商品的q不等于p,其他都相同,这时,你就会发现如果要买C商品的话,肯定得先买C商品,因为买C商品的代价最大.所以,我们可以按照qi-pi的顺序来确定大顺序.这里我们还可以用更严谨的方式来 ...
- 关于同时可用git命令clone和TortoiseGit拉取代码不需要密码
工作需要在windows7下使用git分布式版本控制系统,需要同时可以在git命令行模式或TortoiseGit拉取代码而不需要每次输入密码. 这时候需要同时安装git和TortoiseGit. gi ...
- 《Effective Java》读书笔记 - 4.类和接口
Chapter 4 Classes and Interfaces Item 13: Minimize the accessibility of classes and members 一个好的模块设计 ...