2016-10-03 7 views
2

I имеет следующую структуру весны загрузки проекта:как правильно создать изображение докеры с загрузочным загрузочным файлом с помощью Dockerfile?

pwd 
/Users/eugene/Documents/Dev/Java/workspace/Springboot-Receiver-API 

tree 
. 
├── Dockerfile 
├── pom.xml 
├── src 
│   └── main 
│    ├── java 
│    │   └── com 
│    │    └── myconpany 
│    │     └── myproject 
│    │      └── data 
│    │       ├── Application.java 
│    │       ├── ConsumerThreadPool.java 
│    │       ├── ErpConsumer.java 
│    │       ├── configs 
│    │       │   ├── ConsumerConfigFactory.java 
│    │       │   └── DatabaseConfig.java 
│    │       ├── controllers 
│    │       │   ├── AppBeans.java 
│    │       │   ├── BankcustpaymidtableController.java 
│    │       │   ├── CompanynafcodeController.java 
│    │       │   ├── CustcollectionscontactController.java 
│    │       │   ├── CustdirectdebitmandateController.java 
│    │       │   ├── CusttableController.java 
│    │       │   ├── CusttradingpartnercodeController.java 
│    │       │   ├── DirnameaffixController.java 
│    │       │   ├── DirnamesequenceController.java 
│    │       │   ├── DirorganizationnameController.java 
│    │       │   ├── DirpartylocationController.java 
│    │       │   ├── DirpartytableController.java 
│    │       │   ├── DirpersonnameController.java 
│    │       │   ├── DirpersonuserController.java 
│    │       │   ├── HcmworkerController.java 
│    │       │   ├── LogisticselectronicaddressController.java 
│    │       │   ├── LogisticspostaladdressController.java 
│    │       │   ├── LvpaymtranscodesController.java 
│    │       │   ├── MainController.java 
│    │       │   ├── McrcusttableController.java 
│    │       │   ├── McrmessageassociationCOntroller.java 
│    │       │   ├── RetailcusttableController.java 
│    │       │   ├── SpringBootKafkaProducer.java 
│    │       │   ├── Taxgstreliefgroupheading_myController.java 
│    │       │   ├── Taxinformationcusttable_inController.java 
│    │       │   └── WhscusttableController.java 
│    │       └── models 
│    │        ├── Bankcustpaymidtable.java 
│    │        ├── BankcustpaymidtableCompositeKey.java 
│    │        ├── BankcustpaymidtableDao.java 
│    │        ├── Companynafcode.java 
│    │        ├── CompanynafcodeCompositeKey.java 
│    │        ├── CompanynafcodeDao.java 
│    │        ├── Custcollectionscontact.java 
│    │        ├── CustcollectionscontactCompositeKey.java 
│    │        ├── CustcollectionscontactDao.java 
│    │        ├── Custdirectdebitmandate.java 
│    │        ├── CustdirectdebitmandateCompositeKey.java 
│    │        ├── CustdirectdebitmandateDao.java 
│    │        ├── Custtable.java 
│    │        ├── CusttableCompositeKey.java 
│    │        ├── CusttableDao.java 
│    │        ├── Custtradingpartnercode.java 
│    │        ├── CusttradingpartnercodeCompositeKey.java 
│    │        ├── CusttradingpartnercodeDao.java 
│    │        ├── Dirnameaffix.java 
│    │        ├── DirnameaffixCompositeKey.java 
│    │        ├── DirnameaffixDao.java 
│    │        ├── Dirnamesequence.java 
│    │        ├── DirnamesequenceCompositeKey.java 
│    │        ├── DirnamesequenceDao.java 
│    │        ├── Dirorganizationname.java 
│    │        ├── DirorganizationnameCompositeKey.java 
│    │        ├── DirorganizationnameDao.java 
│    │        ├── Dirpartylocation.java 
│    │        ├── DirpartylocationCompositeKey.java 
│    │        ├── DirpartylocationDao.java 
│    │        ├── Dirpartytable.java 
│    │        ├── DirpartytableCompositeKey.java 
│    │        ├── DirpartytableDao.java 
│    │        ├── Dirpersonname.java 
│    │        ├── DirpersonnameCompositeKey.java 
│    │        ├── DirpersonnameDao.java 
│    │        ├── Dirpersonuser.java 
│    │        ├── DirpersonuserCompositeKey.java 
│    │        ├── DirpersonuserDao.java 
│    │        ├── Hcmworker.java 
│    │        ├── HcmworkerCompositeKey.java 
│    │        ├── HcmworkerDao.java 
│    │        ├── Logisticselectronicaddress.java 
│    │        ├── LogisticselectronicaddressCompositeKey.java 
│    │        ├── LogisticselectronicaddressDao.java 
│    │        ├── Logisticspostaladdress.java 
│    │        ├── LogisticspostaladdressCompositeKey.java 
│    │        ├── LogisticspostaladdressDao.java 
│    │        ├── Lvpaymtranscodes.java 
│    │        ├── LvpaymtranscodesCompositeKey.java 
│    │        ├── LvpaymtranscodesDao.java 
│    │        ├── Mcrcusttable.java 
│    │        ├── McrcusttableCompositeKey.java 
│    │        ├── McrcusttableDao.java 
│    │        ├── Mcrmessageassociation.java 
│    │        ├── McrmessageassociationCompositeKey.java 
│    │        ├── McrmessageassociationDao.java 
│    │        ├── Retailcusttable.java 
│    │        ├── RetailcusttableCompositeKey.java 
│    │        ├── RetailcusttableDao.java 
│    │        ├── Taxgstreliefgroupheading_my.java 
│    │        ├── Taxgstreliefgroupheading_myCompositeKey.java 
│    │        ├── Taxgstreliefgroupheading_myDao.java 
│    │        ├── Taxinformationcusttable_in.java 
│    │        ├── Taxinformationcusttable_inCompositeKey.java 
│    │        ├── Taxinformationcusttable_inDao.java 
│    │        ├── Whscusttable.java 
│    │        ├── WhscusttableCompositeKey.java 
│    │        └── WhscusttableDao.java 
│    └── resources 
│     └── application.properties 
└── target 
    ├── Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar 
    ├── Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar.original 
    ├── classes 
    │   ├── META-INF 
    │   │   ├── MANIFEST.MF 
    │   │   └── maven 
    │   │    ├── netgloo 
    │   │    │   └── spring-boot-mysql-jpa-hibernate 
    │   │    │    ├── pom.properties 
    │   │    │    └── pom.xml 
    │   │    └── myconpany 
    │   │     └── Spring-Boot-ReceiverAPI 
    │   │      ├── pom.properties 
    │   │      └── pom.xml 
    │   ├── application.properties 
    │   └── com 
    │    └── myconpany 
    │     └── myproject 
    │      └── data 
    │       ├── Application.class 
    │       ├── ConsumerThreadPool.class 
    │       ├── ErpConsumer$1.class 
    │       ├── ErpConsumer$10.class 
    │       ├── ErpConsumer$11.class 
    │       ├── ErpConsumer$2.class 
    │       ├── ErpConsumer$3.class 
    │       ├── ErpConsumer$4.class 
    │       ├── ErpConsumer$5.class 
    │       ├── ErpConsumer$6.class 
    │       ├── ErpConsumer$7.class 
    │       ├── ErpConsumer$8.class 
    │       ├── ErpConsumer$9.class 
    │       ├── ErpConsumer.class 
    │       ├── configs 
    │       │   ├── ConsumerConfigFactory.class 
    │       │   └── DatabaseConfig.class 
    │       ├── controllers 
    │       │   ├── AppBeans.class 
    │       │   ├── BankcustpaymidtableController$1.class 
    │       │   ├── BankcustpaymidtableController.class 
    │       │   ├── CompanynafcodeController$1.class 
    │       │   ├── CompanynafcodeController.class 
    │       │   ├── CustcollectionscontactController$1.class 
    │       │   ├── CustcollectionscontactController.class 
    │       │   ├── CustdirectdebitmandateController$1.class 
    │       │   ├── CustdirectdebitmandateController.class 
    │       │   ├── CusttableController.class 
    │       │   ├── CusttradingpartnercodeController$1.class 
    │       │   ├── CusttradingpartnercodeController.class 
    │       │   ├── DirnameaffixController$1.class 
    │       │   ├── DirnameaffixController.class 
    │       │   ├── DirnamesequenceController$1.class 
    │       │   ├── DirnamesequenceController.class 
    │       │   ├── DirorganizationnameController$1.class 
    │       │   ├── DirorganizationnameController.class 
    │       │   ├── DirpartylocationController$1.class 
    │       │   ├── DirpartylocationController.class 
    │       │   ├── DirpartytableController$1.class 
    │       │   ├── DirpartytableController.class 
    │       │   ├── DirpersonnameController$1.class 
    │       │   ├── DirpersonnameController.class 
    │       │   ├── DirpersonuserController$1.class 
    │       │   ├── DirpersonuserController.class 
    │       │   ├── HcmworkerController.class 
    │       │   ├── LogisticselectronicaddressController$1.class 
    │       │   ├── LogisticselectronicaddressController.class 
    │       │   ├── LogisticspostaladdressController$1.class 
    │       │   ├── LogisticspostaladdressController.class 
    │       │   ├── LvpaymtranscodesController$1.class 
    │       │   ├── LvpaymtranscodesController.class 
    │       │   ├── MainController.class 
    │       │   ├── McrcusttableController$1.class 
    │       │   ├── McrcusttableController.class 
    │       │   ├── McrmessageassociationCOntroller$1.class 
    │       │   ├── McrmessageassociationCOntroller.class 
    │       │   ├── RetailcusttableController$1.class 
    │       │   ├── RetailcusttableController.class 
    │       │   ├── SpringBootKafkaProducer.class 
    │       │   ├── Taxgstreliefgroupheading_myController$1.class 
    │       │   ├── Taxgstreliefgroupheading_myController.class 
    │       │   ├── Taxinformationcusttable_inController$1.class 
    │       │   ├── Taxinformationcusttable_inController.class 
    │       │   ├── WhscusttableController$1.class 
    │       │   └── WhscusttableController.class 
    │       └── models 
    │        ├── Bankcustpaymidtable.class 
    │        ├── BankcustpaymidtableCompositeKey.class 
    │        ├── BankcustpaymidtableDao.class 
    │        ├── Companynafcode.class 
    │        ├── CompanynafcodeCompositeKey.class 
    │        ├── CompanynafcodeDao.class 
    │        ├── Custcollectionscontact.class 
    │        ├── CustcollectionscontactCompositeKey.class 
    │        ├── CustcollectionscontactDao.class 
    │        ├── Custdirectdebitmandate.class 
    │        ├── CustdirectdebitmandateCompositeKey.class 
    │        ├── CustdirectdebitmandateDao.class 
    │        ├── Custtable.class 
    │        ├── CusttableCompositeKey.class 
    │        ├── CusttableDao.class 
    │        ├── Custtradingpartnercode.class 
    │        ├── CusttradingpartnercodeCompositeKey.class 
    │        ├── CusttradingpartnercodeDao.class 
    │        ├── Dirnameaffix.class 
    │        ├── DirnameaffixCompositeKey.class 
    │        ├── DirnameaffixDao.class 
    │        ├── Dirnamesequence.class 
    │        ├── DirnamesequenceCompositeKey.class 
    │        ├── DirnamesequenceDao.class 
    │        ├── Dirorganizationname.class 
    │        ├── DirorganizationnameCompositeKey.class 
    │        ├── DirorganizationnameDao.class 
    │        ├── Dirpartylocation.class 
    │        ├── DirpartylocationCompositeKey.class 
    │        ├── DirpartylocationDao.class 
    │        ├── Dirpartytable.class 
    │        ├── DirpartytableCompositeKey.class 
    │        ├── DirpartytableDao.class 
    │        ├── Dirpersonname.class 
    │        ├── DirpersonnameCompositeKey.class 
    │        ├── DirpersonnameDao.class 
    │        ├── Dirpersonuser.class 
    │        ├── DirpersonuserCompositeKey.class 
    │        ├── DirpersonuserDao.class 
    │        ├── Hcmworker.class 
    │        ├── HcmworkerCompositeKey.class 
    │        ├── HcmworkerDao.class 
    │        ├── Logisticselectronicaddress.class 
    │        ├── LogisticselectronicaddressCompositeKey.class 
    │        ├── LogisticselectronicaddressDao.class 
    │        ├── Logisticspostaladdress.class 
    │        ├── LogisticspostaladdressCompositeKey.class 
    │        ├── LogisticspostaladdressDao.class 
    │        ├── Lvpaymtranscodes.class 
    │        ├── LvpaymtranscodesCompositeKey.class 
    │        ├── LvpaymtranscodesDao.class 
    │        ├── Mcrcusttable.class 
    │        ├── McrcusttableCompositeKey.class 
    │        ├── McrcusttableDao.class 
    │        ├── Mcrmessageassociation.class 
    │        ├── McrmessageassociationCompositeKey.class 
    │        ├── McrmessageassociationDao.class 
    │        ├── Retailcusttable.class 
    │        ├── RetailcusttableCompositeKey.class 
    │        ├── RetailcusttableDao.class 
    │        ├── Taxgstreliefgroupheading_my.class 
    │        ├── Taxgstreliefgroupheading_myCompositeKey.class 
    │        ├── Taxgstreliefgroupheading_myDao.class 
    │        ├── Taxinformationcusttable_in.class 
    │        ├── Taxinformationcusttable_inCompositeKey.class 
    │        ├── Taxinformationcusttable_inDao.class 
    │        ├── Whscusttable.class 
    │        ├── WhscusttableCompositeKey.class 
    │        └── WhscusttableDao.class 
    ├── generated-sources 
    │   └── annotations 
    ├── maven-archiver 
    │   └── pom.properties 
    ├── maven-status 
    │   └── maven-compiler-plugin 
    │    └── compile 
    │     └── default-compile 
    │      ├── createdFiles.lst 
    │      └── inputFiles.lst 
    └── test-classes 

Мой Dockerfile выглядит следующим образом:

FROM java:8 
ADD target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar app.jar 
RUN bash -c 'touch /app.jar' 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

От корня проекта (/Users/eugene/Documents/Dev/Java/workspace/Springboot-Receiver-API) я запускаю следующую команду, чтобы построить Docker изображение:

sudo docker build - < Dockerfile 

Я получаю следующие выходные данные:

Sending build context to Docker daemon 2.048 kB 
Step 1 : FROM java:8 
---> 96cddf5ae9f1 
Step 2 : ADD target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar app.jar 
lstat target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar: no such file or directory 

Из той же директории, когда я бегу ls target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar я получаю:

target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar 

Что shoudl я сделать для того, чтобы сделать докер сборки распознает target/Spring-Boot-ReceiverAPI-0.0.1-SNAPSHOT.jar файл?

ответ

1

AFAIK вы можете либо использовать maven-resources-plugin, чтобы убедиться, что Dockerfile находится в соответствующем месте (и тогда вы могли бы даже поставить имя файла банку в качестве переменной в вашем Dockerfile):

<build> 
    <resources>  
     <resource> 
      <directory>${basedir}/src/main/docker</directory> 
      <filtering>true</filtering> 
      <includes> 
       <include>Dockerfile</include> 
      </includes> 
     </resource> 
    </resources> 
</build> 

или, что еще лучше, вы идете на maven-docker-plugin, как описано здесь: https://spring.io/guides/gs/spring-boot-docker/

Надеюсь, что это поможет!