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

相关文章

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

mysql如何查看当前连接数

《mysql如何查看当前连接数》:本文主要介绍mysql如何查看当前连接数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql查看当前连接数查看mysql数据库允许最大连接数总结mysql查看当前连接数查看当前连接数SHOW STATUS LIKE

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步