docker打包当前dinky项目

2024-02-25 16:44

本文主要是介绍docker打包当前dinky项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下是我的打包过程,大家可以借鉴。我也是第一次慢慢摸索,打包一个公共项目,自己上传。

如果嫌麻烦,可以直接使用我的镜像,直接跳到拉取镜像! <可以在任何地方的服务器进行拉取>

docker打包当前dinky项目

先在当前目录下,增加Dockerfile的文件。

因为官方的docker的dinky总有问题,特别麻烦。

编辑内容

FROM openjdk:8-jdk-alpineWORKDIR /appRUN apk update && \apk add --no-cache bash && \mkdir -p /app/dinkyCOPY dinky /app/dinkyENV MYSQL_ADDR=111.231.74.191:3306# CMD /app/dinky/auto.sh stop && /app/dinky/auto.sh start 1.18

执行打包命令

docker build -t junlin4040/dinky .

推送镜像

docker push junlin4040/dinky

可以在任何地方的服务器进行拉取

docker pull junlin4040/dinky

启动容器

docker run -itd --name dinky --publish 8888:8888 --env MYSQL_ADDR=111.231.74.191:3306 junlin4040/dinky

注意MYSQL_ADDR 修改到你们的ip,尽量别连我的。

然后注意你们的数据库需要自己初始化dinky和dinky的sql数据。

进入容器

docker exec -it dinky /bin/bash

执行命令

cd dinky 
找到相关命令。
执行
./auto.sh start 1.18如果提示 permission denied 执行修改权限命令我很直接,直接
chmod -R 777 /app/dinky再次执行
./auto.sh start 1.18然后用你的ip:8888就可以,如果是公网,需要打开防火墙,把8888加入进去。

在这里插入图片描述

注册flink实例

在这里插入图片描述

注意这个有时候注册不上去,如何地址没问题。是可以的。

如果还有疑问,就是看 dinky的nohup.out的日志。

刚才我竟然用了中文符号的:看也看不出来。

看日志才知道。现在就正常。


以下是打包dockerfile 碰到的一些问题 不断的修正。

tips: 修改

FROM alpine:latestWORKDIR /appRUN apk update && \apk add --no-cache bash && \mkdir -p /app/dinkyCOPY dinky /app/dinkyENV MYSQL_ADDR=111.231.74.191:3306# CMD /app/dinky/auto.sh stop && /app/dinky/auto.sh start 1.18

查看日志

 tail -n 500 nohup.outnohup: can't execute 'java': No such file or directory

打包环境还是得加java

FROM alpine:latest 修改为  FROM openjdk:8-jdk-alpine

仿照例子

# jdk
FROM openjdk:8-jdk-alpine
# label
LABEL by="https://github.com/xxd763795151/kafka-console-ui"
# root
RUN mkdir -p /app && cd /app
WORKDIR /app
# config log data
RUN mkdir -p /app/config && mkdir -p /app/log && mkdir -p /app/data && mkdir -p /app/lib
# add file
ADD ./lib/kafka-console-ui.jar /app/lib
ADD ./config /app/config
# port
EXPOSE 7766
# start server
CMD java -jar -Xmx512m -Xms512m -Xmn256m -Xss256k /app/lib/kafka-console-ui.jar --spring.config.location="/app/config/" --logging.home="/app/log" --data.dir="/app/data"

本想使用scratch 不使用任何环境

FROM scratch
WORKDIR /dinky
COPY dinky /dinky
ENV MYSQL_ADDR=111.231.74.191:3306

特别的

RUN mkdir -p /app && cd /app这个指令执行了两个操作:
mkdir -p /app:创建一个名为 /app 的目录。-p 选项表示如果目录已经存在,则不会引发错误,并且会递归创建所需的父目录。
cd /app:将当前工作目录更改为 /app。这意味着接下来的指令将在 /app 目录中执行。

因为要执行

mkdir

scratch改为Alpine
请注意,使用 
-d 模式运行容器时,如果容器没有一个长时间运行的进程,容器可能会自动退出。这也可能是您在使用 
docker run -d 后没有看到容器的原因之一。您可以通过检查容器的日志来查找容器为什么退出以及是否有错误发生。是的,当您使用 docker run -it 在一个交互式终端中启动容器时,即使容器内部没有长时间运行的程序,容器也会保持运行状态。这是因为交互式终端会话会持续保持连接,使容器保持活动状态。
在这种情况下,当您退出交互式终端会话时,容器可能会自动停止并退出。如果您希望容器在后台持续运行,而无需保持与容器的交互,可以使用 docker run -d 在后台模式下启动容器。

这篇关于docker打包当前dinky项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746081

相关文章

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp