2 years ago
I'm using a Dockerfile to build my Maven project but I cant' get past the error: "Cache mount ID is not prefixed with cache key". I want my app to run on a Tomcat servlet.
Would appreciate help on this. Here's my Dockerfile:
FROM tomcat:10.1-jdk21-temurin
ARG RAILWAY_PUBLIC_DOMAIN
ARG RAILWAY_PRIVATE_DOMAIN
ARG RAILWAY_PROJECT_NAME
ARG RAILWAY_ENVIRONMENT_NAME
ARG RAILWAY_SERVICE_NAME
ARG RAILWAY_PROJECT_ID
ARG RAILWAY_ENVIRONMENT_ID
ARG RAILWAY_SERVICE_ID
ENV RAILWAY_PUBLIC_DOMAIN=$RAILWAY_PUBLIC_DOMAIN
RAILWAY_PRIVATE_DOMAIN=$RAILWAY_PRIVATE_DOMAIN
RAILWAY_PROJECT_NAME=$RAILWAY_PROJECT_NAME
RAILWAY_ENVIRONMENT_NAME=$RAILWAY_ENVIRONMENT_NAME
RAILWAY_SERVICE_NAME=$RAILWAY_SERVICE_NAME
RAILWAY_PROJECT_ID=$RAILWAY_PROJECT_ID
RAILWAY_ENVIRONMENT_ID=$RAILWAY_ENVIRONMENT_ID
RAILWAY_SERVICE_ID=$RAILWAY_SERVICE_ID
RUN rm -rf /usr/local/tomcat/webapps/*
RUN echo $RAILWAY_SERVICE_NAME
COPY target/CCODE.pattern.rest.war /usr/local/tomcat/webapps/ROOT.war
WORKDIR /app
COPY . /app
RUN apt-get update &&
apt-get install -y maven &&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
RUN --mount=type=cache,id=s/b4d5caca-d379-4c7c-a78d-10725c38dd97-maven,target=/root/.m2
mvn -DskipTests clean install
EXPOSE 8080
CMD ["catalina.sh", "run"]
ⓘ Deployment information is only viewable by Project members and Railway admins.
6 Replies
2 years ago
I realized the error might be because I'm setting my own port, so I'm gonna change that first and check again.
2 years ago
Please read this docs section -
2 years ago
My issue did turn out to be exposing ports in the Dockerfile. Thanks for the responses.
jp-cc-projects
My issue did turn out to be exposing ports in the Dockerfile. Thanks for the responses.
2 years ago
Could you please elaborate? I thought declaring EXPOSE 3000 is required for the docker image to build and run.
2 years ago
EXPOSE is not required, nor does Railway even use the value defined by that keyword.
Status changed to Solved brody • over 1 year ago