docker构建Springboot,调用外部配置文件
jar包
mvn clean package
jar
包上传到服务器目录下
此处jar包名字为
SSO-0.0.1-SNAPSHOT.jar
基础镜像
docker pull openjdk:8
Dockerfile
新建Dockerfile文件
touch Dockerfile
目录结构
编辑文件
vim Dockerfile
# 使用基础镜像
FROM openjdk:8
# 设置工作目录
WORKDIR /app
# 复制可执行的 jar 文件,命名为test.jar
ADD SSO-0.0.1-SNAPSHOT.jar /app/test.jar
# 复制linux宿主机配置文件到镜像中
ADD conf/application.yaml /app/conf/application.yaml
# 多个配置文件
# ADD ....
# 设置环境变量
ENV SPRING_CONFIG_LOCATION=file:/app/conf/application.yaml
# 多个配置文件 ,file:/app....
# 暴露端口
EXPOSE 8889
# 启动 Spring Boot 应用
ENTRYPOINT ["java","-jar","test.jar"]
构建镜像
docker build -t test:1.0 .
运行容器
docker run -d \
--name desktop \
-p 8889:8889 \
-v /root/my_test/conf:/app/conf \
test:1.0
进入容器查看目录结构
docker exec -it desktop /bin/bash
检验生效
重启容器
docker restart desktop
发布镜像到Docker Hub
docker login
# 输入账号密码
标记镜像
docker tag image-name username/repository:tag
推送
docker push username/repository:tag
额外记录报错
docker: Error response from daemon: driver failed programming external connectivity on endpoint异常
**原因:**好像是因为先启动docker,再启动防火墙??
直接重启docker即可
systemctl restart docker
docker构建VUE项目
打包前端项目
npm run build
项目目录下生成dist
文件夹
拉取镜像
docker pull nginx
新建目录结构
编辑配置文件
# default.conf
server {
listen 80;
server_name localhost; # 修改为docker服务宿主机的ip
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# Dockerfile文件
# 该镜像是基于nginx:latest镜像构建的
FROM nginx
# 删除目录下的default.conf文件
RUN rm /etc/nginx/conf.d/default.conf
# 将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置
ADD default.conf /etc/nginx/conf.d/
# 将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下
COPY dist/ /usr/share/nginx/html/
构建镜像
docker build -t test .
启动
docker run -d -p 9090:80 --name my_vue test