Writing to a file in Java application on Docker

Background

I'm trying to create a web service compiler, so the user can send a code written in some language, for which I created a compiler, then it will compile, run and return the printed results. My second iteration includes the use of Docker image to isolate the start POST'ed code running on my web server.

Problem

I am trying to write published code to a text file to run my compiler, but my compiler is not trying to create the file. My path to the file must be correct, and my other test route running. Here are some demo code, which I try to run, but can not:

try (Writer writer = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("/raw/compile-source.slacc"), "utf-8"))) { writer.write(req.body()); } 

Docker In my file that I use to start it, I created a directory / raw, if it matters. I think Docker does not want Java-processes to create arbitrary files. Any thoughts? Below is my Docker file.

My Dockers file

 FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] "] FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] a fat jar FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] "] FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] "] FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] raw"] FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] classfiles"]; FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] out"]; FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] CMD ["java", "-version"] CMD ["mkdir", "/raw"] CMD ["mkdir", "/classfiles"]; CMD ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] 
+5
source share
1 answer

I had CMD and RUN confused. I only need to have the final

 mvn exec:java 

in the CMD block, but the rest should be running. This is my final result. I also omitted getting scala. :)

 FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] / scala FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] : resolve"] FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] "] FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] a fat jar FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] raw"] FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] + w", "/ raw"] FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] out"]; FROM java:8 # Install Scala ENV SCALA_HOME /usr/local/share/scala ENV PATH $PATH:$SCALA_HOME/bin ENV SCALA_VERSION 2.11.8 RUN wget --quiet http://downloads.lightbend.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \ tar -xf scala-$SCALA_VERSION.tgz && \ rm scala-$SCALA_VERSION.tgz && \ mv scala-$SCALA_VERSION $SCALA_HOME # Install maven RUN apt-get update RUN apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml RUN ["mvn", "dependency:resolve"] RUN ["mvn", "verify"] # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] RUN ["java", "-version"] RUN ["mkdir", "/raw"] RUN ["chmod", "a+w", "/raw"] RUN ["mkdir", "/classfiles"]; RUN ["mkdir", "/out"]; EXPOSE 4567 CMD ["mvn", "exec:java"] 

Thanks to everyone who answered and helped me.

0
source

All Articles