springboot配置docker,通过docker-compose启动

文章目录

  • docker
    • pom.xml 配置maven插件
    • DockerFile
    • 镜像打包和推送
  • docker-compose.yml
  • 服务启动

docker

pom.xml 配置maven插件

需注意:配置文件中省略了和主题无关的内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    <groupId>com.itdragonsgroupId>
    <artifactId>xxxartifactId>
    <version>1.0.0version>
    <packaging>pompackaging>

    <name>xxxname>

    <properties>
        <docker.plugin.version>0.32.0docker.plugin.version>
        
        <docker.host>unix:/var/run/docker.sockdocker.host>
      	
        <docker.registry>registry.cn-zhangjiakou.aliyuncs.comdocker.registry>
        <docker.namespace>itdragonsdocker.namespace>
        <docker.username>hi****@aliyun.comdocker.username>
        <docker.password>***********docker.password>
    properties>

    <dependencies>
        ……
    dependencies>

    <build>
        <finalName>${project.name}finalName>
        <resources>
            <resource>
                <directory>src/main/resourcesdirectory>
                <filtering>falsefiltering>
            resource>
        resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>io.fabric8groupId>
                    <artifactId>docker-maven-pluginartifactId>
                    <version>${docker.plugin.version}version>
                    <configuration>
                        
                        <dockerHost>${docker.host}dockerHost>
                        
                        <registry>${docker.registry}registry>
                        
                        <authConfig>
                            <push>
                                <username>${docker.username}username>
                                <password>${docker.password}password>
                            push>
                        authConfig>
                        <images>
                            <image>
                                
                                <name>${docker.registry}/${docker.namespace}/${project.artifactId}:${project.version}
                                name>
                                
                                <alias>${project.artifactId}alias>
                                <build>
                                    <dockerFile>${project.basedir}/DockerfiledockerFile>
                                build>
                            image>
                        images>
                    configuration>
                plugin>
            plugins>
        pluginManagement>
    build>
project>

DockerFile

FROM java:8

MAINTAINER [email protected]

ARG JAR_FILE=./target/xxx-admin.jar

# JVM调优参数
ENV VmOptions ""

# 额外参数
ENV PARAMS ""

ENV TZ=PRC

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

WORKDIR /tmp

EXPOSE 8080

ADD ${JAR_FILE} ./app.jar

#  在docker-copmpose中定义ENTRYPOINT,可覆盖CMD
CMD java -server $VmOptions -jar app.jar -Djava.security.egd=file:/dev/./urandom $PARAMS

镜像打包和推送

镜像打包:mvn docker:build
镜像推送:mvn docker:push

docker-compose.yml

version: "3"
services:
  xxx-admin:
    image: registry.cn-zhangjiakou.aliyuncs.com/itdragons/xxx-admin:1.0.0
    container_name: xxx-admin
    ports:
      - 18080:8080
    environment:
      - TZ=Asia/Shanghai
      - SPRING_PROFILES_ACTIVE=dev
      - VmOptions=-Xms512m -Xmx1024m
    volumes:
      - ./logs:/logs

服务启动

docker-compose up -d

你可能感兴趣的:(docker,SpringBoot)