栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

doker涓枃(Dorcker发布)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

doker涓枃(Dorcker发布)

1.--拉取mysql8的镜像

docker pull mysql:8


2.--查看

docker images


3.-- 利用镜像创建mysql8的容器   本机端口为 3308,   解决编码问题

docker run  -p 3308:3306 --name ycmysql8 -e MYSQL_ROOT_PASSWORD=a -d  mysql:8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci


4.--查看容器是否启动

docker ps -a


5.--进入容器     -it 以交互式终端进入容器 

docker exec -it ycmysql8 /bin/bash


6.--登录mysql

mysql -uroot -pa


7.--创建数据库

create database yc108109res  default character set = 'utf8';
show databases;

8.idea 代码修改

(1)测试类上加@ActiveProfiles("init"),多个测试类运用测试套件

package com.xrl.springbootdcitem;


import com.xrl.dao.ResFoodDao;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;


//@RunWith(SpringRunner.class)
@SpringBootApplication
//@MapperScan("com.xrl.mappers")
@SpringBootTest
@ActiveProfiles("init")
//@RunWith(Suite.class)

//@Suite.SuiteClasses(SpringbootdcitemApplicationTests.class)
public class ResFoodDaoTest {
    @Autowired
    @Qualifier("resFoodDaoItem")
    private ResFoodDao resFoodDao;

    @Test
    public void findAllFoods() {
        System.out.println(resFoodDao.findAllFoods());
    }
}

(2)application-prod 是在docker容器中访问docker容器中的mysql,

需要用docker中的地址172.20.0.2:端口

server:
  port: 8084
  servlet:
    session.timeout: 6000
    contextpath: /

logging:
  level:
    root: debug
    com:
      yc: debug
    org:
      springframework: debug
  file:
    name: /tmp





spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://172.20.0.2:3306/ycres?serverTimezone=UTC
    username: root
    password: a
    type: com.alibaba.druid.pool.DruidDataSource

    # 初始化大小,最小,最大
    initial-size: 5
    min-idle: 5
    max-active: 20
    # 配置获取连接等待超时的时间
    max-wait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒
    time-between-eviction-runs-millis: 60000
    # 配置一个连接在池中最小生存时间
    min-evictable-idle-time-millis: 300000
    validation-query: SELECt 1 FROM sys_user
    test-while-idle: true
    test-on-borrow: false
    test-on-return: false
    # 打开 PSCache,并且指定每个连接上 PSCache 的大小
    pool-prepared-statements: true
    max-pool-prepared-statement-per-connection-size: 20
    # 配置监控统计拦截的 Filter,去掉后监控界面 SQL 无法统计,wall 用于防火墙
    filters: stat,wall
    # 通过 connection-properties 属性打开 mergeSql 功能;慢 SQL 记录
    connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
##    # 配置 DruidStatFilter
#    web-stat-filter:
#      enabled: true
#      url-pattern: /*
#      exclusions:  .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
#    # 配置 DruidStatViewServlet
#    stat-view-servlet:
#      url-pattern: /druid/*
#      # IP 白名单,没有配置或者为空,则允许所有访问
#      allow: 127.0.0.1
#      # IP 黑名单,若白名单也存在,则优先使用
#      deny: 192.168.31.253
#      # 禁用 HTML 中 Reset All 按钮
#      reset-enable: false
#      # 登录用户名/密码
#      login-username: root
#      login-password: 123


mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

debug:
  false

application是用来访问docker容器映射出来的地址所以用local host:映射端口

server:
  port: 8080
  servlet:
    session.timeout: 60000
    contextpath: /

logging:
  level:
    root: debug
    com:
      yc: debug
    org:
      springframework: debug
  file:
    path: /tmp       #日志文件存到 /tmp目录下

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ycres?serverTimezone=UTC
    username: root
    password:
    driver-class-name: com.mysql.cj.jdbc.Driver


    type: com.alibaba.druid.pool.DruidDataSource

    # 初始化大小,最小,最大
    initial-size: 5
    min-idle: 5
    max-active: 20
    # 配置获取连接等待超时的时间
    max-wait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒
    time-between-eviction-runs-millis: 60000
    # 配置一个连接在池中最小生存时间
    min-evictable-idle-time-millis: 300000
    #validation-query: SELECt 1 FROM sys_user
    test-while-idle: true
    test-on-borrow: false
    test-on-return: false
    # 打开 PSCache,并且指定每个连接上 PSCache 的大小
    pool-prepared-statements: true
    max-pool-prepared-statement-per-connection-size: 20
    # 配置监控统计拦截的 Filter,去掉后监控界面 SQL 无法统计,wall 用于防火墙
    filters: stat,wall
    # 通过 connection-properties 属性打开 mergeSql 功能;慢 SQL 记录
    connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
##    # 配置 DruidStatFilter
#    web-stat-filter:
#      enabled: true
#      url-pattern: /*
#      exclusions:  .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
#    # 配置 DruidStatViewServlet
#    stat-view-servlet:
#      url-pattern: /druid/*
#      # IP 白名单,没有配置或者为空,则允许所有访问
#      allow: 127.0.0.1
#      # IP 黑名单,若白名单也存在,则优先使用
#      deny: 192.168.31.253
#      # 禁用 HTML 中 Reset All 按钮
#      reset-enable: false
#      # 登录用户名/密码
#      login-username: root
#      login-password: 123




mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启SQL语句打印

(3)创建Dockerfile文件到项目目录下

# 添加 Java 8 镜像来源
FROM java:8

# 添加参数
ARG JAR_FILE

# 添加 Spring Boot 包, JAR_FILE 参数就是从 Docker Maven 插件中指定的构建参数
ADD target/${JAR_FILE} app.jar

# 执行启动命令
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

9.打包程序

pom.xml

 

 

 


            
                org.springframework.boot
                spring-boot-maven-plugin
                2.6.4
                
                    
                        
                            repackage
                        
                    
                
            

            
                com.spotify
                dockerfile-maven-plugin
                1.4.13
                
                    
                        
                            build
                            push
                        
                    
                
                
                    javastack/${project.name}
                    ${project.version}
                    
                        ${project.build.finalName}.jar
                    
                    Dockerfile
                

            

        

10.  桥接

docker network create -d bridge ycnetwork

docker network connect ycnetwork mysql

docker network connect ycnetwork res

docker network inspect ycnetwork

11.测试

http://localhost:8080/

注意点:

每次重启docker  bridge网络中 容器的地址可能改变.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号