How to deploy web service on Docker container

This is my Dockerfile:

#Build java web app container image
FROM ubuntu
MAINTAINER wangyao
#Make java and tomcat install directory
RUN mkdir /usr/local/java
RUN mkdir /usr/local/tomcat
#Copy jre and tomcat into image
ADD jdk1.8.0_45.jdk /usr/local/java/
ADD apache-tomcat-7.0.62 /usr/local/tomcat/
ENV JAVA_HOME=/usr/local/java/Contents/Home
CMD cd /usr/local/tomcat;./bin/catalina.sh run
#Expose http port
EXPOSE 8080

Then i built it and try to start it:

  • Trying to find reason for 500 error when running a Django site in Nginx
  • Docker not mapping port using gunicorn
  • Docker Networking Disabled: WARNING: IPv4 forwarding is disabled. Networking will not work
  • Creating a multi node Kubernetes Cluster for a stateless webapp
  • Docker can't pull image from repository
  • specifying network ip docker
  • wangyaos-MBP-3:flexcloud wangyao$ ls
    Dockerfile      apache-tomcat-7.0.62    jdk1.8.0_45.jdk
    wangyaos-MBP-3:flexcloud wangyao$ docker build -t flexcloud .
    Sending build context to Docker daemon 355.6 MB
    Sending build context to Docker daemon 
    ........
    Successfully built 1f824d246b39
    wangyaos-MBP-3:flexcloud wangyao$ docker run -i -t flexcloud
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/local/java/Contents/Home
    Using CLASSPATH:        /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    /usr/local/java/Contents/Home/bin/java: 20: /usr/local/java/Contents/Home/bin/java: Syntax error: word unexpected (expecting ")")
    wangyaos-MBP-3:flexcloud wangyao$ 
    

    what does word unexpected (expecting ")") mean ?

    I used $ ./bin/catalina.sh run without docker, and I can run it, but i why can not run it on the docker container ?

  • Kubernetes - Unknown admission plugin: DefaultStorageClass
  • Why PHP-FPM prefixes a warning when writing to stdout?
  • Using docker/docker-machine in multiple Terminal tabs on OSX
  • how to configure docker to limit the range of ports for spinning up containers
  • godep vendor with docker
  • How to change Ruby and Rails version for the Rails base Docker image?
  • One Solution collect form web for “How to deploy web service on Docker container”

    As indicated in the comments, the error Syntax error: word unexpected (expecting ")") is a shell script error, which implies that /usr/local/java/Contents/Home/bin/java is not actually the java executable.

    Accessing the container with docker exec -it <container> bash and executing /usr/local/java/Contents/Home/bin/java -version shows us whats actually going on, as per @KingOfSocket’s comment.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.