2017-02-16 26 views
6

Maven ile basit bir web uygulaması oluşturmaya çalışıyorum ve bir Docker kapsayıcısının içinde Tomcat7 ile çalışıyorum.Docker kabında bir maven webapp çalıştırın

FROM java:8 

# Install maven 
RUN apt-get -y update && apt-get install -y maven 

WORKDIR /code 

# Prepare by downloading dependencies 
ADD pom.xml /code/pom.xml 

# Adding source, compile and package into a fat jar 
ADD src /code/src 
RUN ["mvn", "package"] 

EXPOSE 8080 
CMD ["mvn", "tomcat7:run"] 

Ben

docker build -t webapp-example . 

ile Docker imaj ve

ile çalıştırmayı deneyin ediyorum:

- Dockerfile 
- pom.xml 
- src/main/webapp/index.hmtl 

Bu benim Dockerfile geçerli:

Bu

benim yapıdır
docker run -d -p 8080:8080 webapp-example 

Fakat görünüşe göre işe yaramıyor.

Herhangi bir fikrin var mı?

+0

Günlüğünüzde herhangi bir hata var mı? – yorammi

+1

'docker run -ti --rm -p 8080: 8080 webapp-example' kullanarak çalıştırmayı deneyebilir ve ayrıntıları buraya yapıştırabilir misiniz? – GauravJ

+0

Hiç hatam olmadı, günlükler bir kapsayıcıdan 'mvn tomcat7: run' komutunu çalıştırırken normaldir. @GauravJ bir nedenden dolayı, emrinizle, benim uygulama çalışıyor! Çok teşekkürler! – luthien

cevap

4

Eğer tty ve aşağıdaki gibi interaktif bayrağını kullanarak çalışan paylaşılan beri -ti ile sorununuzu sizin taban görüntü öncelikle ön modunda uygulamayı çalıştırmak için oluşturulan java:8 çünkü olduğunu

docker run -ti --rm -p 8080:8080 webapp-example

(çözer bayrak) veya sadece -d modunda derleyin. son resim: yapmalısınız maven araçlar oluşturmak ve uygulamayı çalıştırmak için kullanılmamalıdır çünkü Ayrıca

,,

  1. Eğer maven kullanarak Webapp oluşturun.
  2. Resmi tomcat image kullanarak ayrı olarak tomcat konteyner olarak dağıtın.
+0

Tavsiye için teşekkürler. Docker'da yeni olduğumdan ve henüz bir şeylerin nasıl yapıldığından emin olmadığından, bu 2 adımın Docker tarafından bir araya getirilmesi gerektiğini varsayalım, doğru muyum? – luthien

+0

Uygulamanızı nasıl çalıştıracağınıza bağlıdır. Genel olarak, savaş dosyaları oluşturmak ve dağıtmak iki farklı adımdır. Eğer jenkins kullanıyorsanız, o zaman 2 iş/yapım boru hattı olacaktır. Eğer hala birlikte yapmak istiyorsanız, docker-compose iyi bir seçenektir. – GauravJ