首页 > 解决方案 > JAR 在本地 ubuntu:16.04 中运行并正常工作,但无法在 docker 中运行相同的环境

问题描述

我有一个java脚本

  1. 从 Data/files.txt 读取数据
  2. 将 Data/files.txt 存储到 postgres
  3. 一旦存储成功,它会将数据下的文件移动到另一个文件夹 Move/files.txt

树是

App.jar
Data/files.txt
Move

设想:

  1. 本地。在主机中安装 postgres 并在它存储在 postgres 中的主机中运行 jar 并移动到目标文件夹

  2. 如果我在 docker 中运行它,它不起作用,但只显示 postgres 数据库连接成功

Dockerfile

FROM openjdk:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

CMD ["java", "-jar", "cdrt.jar"]

我为他们运行 docker-compose

postgres
pgadmin 
java-console

java-console在用户目录下挂载到我的主机中/usr/src/myapp

我住所有 3

  1. 应用程序.jar
  2. 日期/文件
  3. 移动

有人可以帮我吗?

docker-compose 日志 -f java

java-console | Connected to the PostgreSQL server successfully.
java-console | timer alrady set
java-console | ERROR: could not open file "/home/app/doc/kyc/kyc_sample.txt" for reading: No such file or directory
java-console |   Hint: COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \copy.
java-console |   Where: SQL statement "COPY cdr_kYC ( 
java-console |   CUSTOMER_PROFILE_ID ,
java-console |  msisdn ,
java-console |  NATIONAL_ID  ,
java-console |  CUSTOMER_NAME ,
java-console |  GENDER  ,
java-console |  DATE_OF_BIRTH ,
java-console |  TRANSACTION_ID  ,
java-console |  PERMANENT_DISTRICT  ,
java-console |  PERMANENT_THANA  ,
java-console |  PERMANENT_ADDRESS ,
java-console |  PRESENT_DISTRICT,
java-console |  PRESENT_THANA  ,
java-console |  PRESENT_ADDRESS  ,
java-console |  CUSTOMER_EMAIL,
java-console |  ENTRY_TYPE ,
java-console |  SUBMIT_TIME ,
java-console |  VERSION_TYPE 
java-console |      ) FROM '/home/app/doc/kyc/kyc_sample.txt'DELIMITER '|' CSV  HEADER"
java-console | PL/pgSQL function cdr_kyc_record(text) line 31 at EXECUTE

标签: javapostgresqldocker

解决方案


推荐阅读