I have a Maven project with the following structure:
.
|-- Dockerfile
|-- entrypoint.sh
|-- pom.xml
|-- src
`-- target
My Dockerfile is:
FROM myimage
RUN groupadd --system --gid 7447 my-service
RUN adduser --system --gid 7447 --uid 7447 --shell /bin/bash --home /home/my-service my-service
WORKDIR /home/my-service
RUN chown -R my-service:my-service .
USER my-service
COPY --chown=my-service:my-service entrypoint.sh entrypoint.sh
COPY --chown=my-service:my-service target/my-service-0.0.1-SNAPSHOT.jar my-service.jar
EXPOSE 8080 15372
ENTRYPOINT ["/home/my-service/entrypoint.sh"]
while my entrypoint.sh is:
#!/usr/bin/env bash
exec java -XX:MaxRAMPercentage=75.0 -XX:InitialRAMPercentage=75.0 -jar /home/my-service/my-service.jar
When I build and run the docker image:
docker build . -t test --no-cache && docker run --rm
on my macOS laptop everything works. When I deploy the image to AWS EKS K8s hosted on Linux I suppose I get this error:
Error: failed to start container "my-service": Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/home/my-service/entrypoint.sh": stat /home/my-service/entrypoint.sh: no such file or directory
I experimented with chown
but can't understand what the issue is.