我有一个 Spring boot 应用程序,并使用 spotify 插件来对我的应用程序进行 Dockerize。所以,我将有一个像下面这样的 Dockerfile。
FROM jdk1.8:latest
RUN mkdir -p /opt/servie
COPY target/service.war /opt/service
ENV JAVA_OPTS="" \
JAVA_ARGS=""
CMD java ${JAVA_OPTS} -jar /opt/service/service.war ${JAVA_ARGS}
Run Code Online (Sandbox Code Playgroud)
我遇到了 JIB,它看起来很酷。但是,努力让它工作。
我在下面添加了 pom 条目。
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.6</version>
<configuration>
<from>
<image>jdk1.8:latest</image>
</from>
<to>
<image>docker.hub.com/test/service</image>
</to>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
mvn 编译 jib:build
我看到以下内容。
[INFO] 构建依赖层... [INFO] 构建类层... [INFO] 构建资源层...
当我运行 docker 镜像时,它说 Jar 文件不存在。我有一个多模块 maven 项目,并希望在从父 pom 运行 mvn compile jib:build 时对多个模块进行 dockerize。这有什么帮助吗?
我在本地主机上使用端口2181运行zookeeper(不是通过docker).
此外,尝试通过docker运行docker镜像组成如下.
#
# Mesos
#
mesos-master:
image: mesosphere/mesos-master:1.0.3
restart: always
privileged: true
network_mode: host
volumes:
- ~/mesos-data/master:/tmp/mesos
environment:
MESOS_CLUSTER: "mesos-cluster"
MESOS_QUORUM: "1"
MESOS_ZK: "zk://localhost:2181/mesos"
MESOS_PORT: 5000
MESOS_REGISTRY_FETCH_TIMEOUT: "2mins"
MESOS_EXECUTOR_REGISTRATION_TIMEOUT: "2mins"
MESOS_LOGGING_LEVEL: INFO
MESOS_INITIALIZE_DRIVER_LOGGING: "false"
Run Code Online (Sandbox Code Playgroud)
Zookeepr正在侦听端口2181,但仍然我的docker进程无法连接到zookeeper端口2181.
有什么遗漏?
谢谢
我正在使用以下命令来检查 Kubernetes 中的日志。
kubectl 日志 pod_name -n 命名空间
它从头开始打印所有日志。
我有一个创建一次的连接对象,并在forEach中使用。如果没有在forEach内部使用初始值,则无法最终使用连接对象,因为它是最终的。
final Connection connection;
try {
connection = db.createConnection();
final Map<String, String> dataMap = adminClient.list().values();
dataMap.entrySet().forEach(entry -> {
// Need to use connection object here ...
// Unable to use the connection if it is not final and to make it final, not initializing it to null ...
});
}
catch (final Exception e) {
e.printStackTrace();
}
finally {
// Unable to use the connection here if it is not initialized to null ...
if (connection != null) {
connection.close(); …Run Code Online (Sandbox Code Playgroud) 我的cronjob配置为每30分钟运行一次。是否可以读取cronJob日志并将其存储到DB?因此,要求是将每个运行以及所有作业的状态和日志存储在数据库中。这是显示基于Web的应用程序中包含状态,持续时间和日志的作业历史记录所必需的。
我有一个带有 CMD 的 Docker 映像来运行 Java 应用程序。
此应用程序正在部署到 Kubernetes 的容器中。因为,我将它部署为 Docker 映像,所以我期望它像 Docker 进程一样运行。所以,我刚刚登录到 pod 并尝试使用“ docker ps ”。
但是,令我惊讶的是它作为 Java 进程而不是 docker 进程运行。我可以通过“ ps -ef ”看到这个过程
我很困惑,它如何在内部工作?
我有一个目录结构如下.
- app
Dockerfile
- target
- test_app.tar.gz
Run Code Online (Sandbox Code Playgroud)
tar.gz的提取将具有以下内容,
- lib
- conf
- bin
Run Code Online (Sandbox Code Playgroud)
我想提取并添加lib/*文件夹到docker镜像.
FROM docker.hub.com/alpine/jdk1.8:latest
RUN mkdir -p /service \
/service/app_lib \
/service/lib
COPY target/test_app.tar.gz /service/app_lib/
RUN cd /service/app_lib/
RUN tar -xzf test_app.tar.gz
RUN rm test_app.tar.gz
RUN cd lib
COPY * /service/lib/
RUN rm app_lib
Run Code Online (Sandbox Code Playgroud)
得到以下错误.
Step 5/11 : RUN tar -xzf test_app.tar.gz
---> Running in edde27a1cc60
tar (child): test_app.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child …Run Code Online (Sandbox Code Playgroud)