From 12c26408f8c7891dff22bd2549e34b1b00fb9461 Mon Sep 17 00:00:00 2001 From: wr148d Date: Mon, 1 Jun 2020 14:26:31 -0400 Subject: Containers should not run as root by default Issue-ID: AAI-2822 Signed-off-by: wr148d Change-Id: I9f01acd217c20dd1c250401e9a96edc31ce77a79 --- src/main/docker/Dockerfile | 13 +++++++++++-- src/main/docker/docker-entrypoint.sh | 27 ++++----------------------- 2 files changed, 15 insertions(+), 25 deletions(-) (limited to 'src/main') diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index 9129f09..a9d4f2a 100755 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ -RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-GA +RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-GA /opt/app/aai-graphadmin/logs/gc VOLUME /opt/aai/logroot/AAI-GA VOLUME /opt/data @@ -8,9 +8,18 @@ VOLUME /opt/tools HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8449 || exit 1 +RUN groupadd aaiadmin -g 1000 + +RUN adduser -u 1000 -h /opt/aaihome/aaiadmin -S -D -G aaiadmin -s /bin/bash aaiadmin + # Add the proper files into the docker image from your build WORKDIR /opt/app/aai-graphadmin -COPY /maven/aai-graphadmin/ . + +RUN chown -R aaiadmin:aaiadmin /opt/app/aai-graphadmin /etc/profile.d /opt/aai/logroot/AAI-GA /opt/app /opt/aai/logroot /opt/app/aai-graphadmin/logs/gc + +COPY --chown=aaiadmin:aaiadmin /maven/aai-graphadmin/ . + +USER aaiadmin ENV AAI_BUILD_VERSION @aai.docker.version@ # Expose the ports for outside linux to use diff --git a/src/main/docker/docker-entrypoint.sh b/src/main/docker/docker-entrypoint.sh index 76c8d5e..22da6cf 100644 --- a/src/main/docker/docker-entrypoint.sh +++ b/src/main/docker/docker-entrypoint.sh @@ -23,29 +23,13 @@ RESOURCES_HOME=${APP_HOME}/resources/; export SERVER_PORT=${SERVER_PORT:-8449}; -USER_ID=${LOCAL_USER_ID:-9001} -GROUP_ID=${LOCAL_GROUP_ID:-9001} - echo "Project Build Version: ${AAI_BUILD_VERSION}"; -if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then - - groupadd aaiadmin -g ${GROUP_ID} || { - echo "Unable to create the group id for ${GROUP_ID}"; - exit 1; - } - useradd --shell=/bin/bash -u ${USER_ID} -g ${GROUP_ID} -o -c "" -m aaiadmin || { - echo "Unable to create the user id for ${USER_ID}"; - exit 1; - } -fi; - -chown -R aaiadmin:aaiadmin /opt/app /opt/aai/logroot find /opt/app/ -name "*.sh" -exec chmod +x {} + if [ -f ${APP_HOME}/aai.sh ]; then - gosu aaiadmin ln -s bin scripts - gosu aaiadmin ln -s /opt/aai/logroot/AAI-GA logs + ln -s bin scripts + ln -s /opt/aai/logroot/AAI-GA logs mv ${APP_HOME}/aai.sh /etc/profile.d/aai.sh chmod 755 /etc/profile.d/aai.sh @@ -56,7 +40,7 @@ if [ -f ${APP_HOME}/aai.sh ]; then if [ -f ${APP_HOME}/bin/${scriptName} ]; then shift 1; - gosu aaiadmin ${APP_HOME}/bin/${scriptName} "$@" || { + ${APP_HOME}/bin/${scriptName} "$@" || { echo "Failed to run the ${scriptName}"; exit 1; } @@ -70,9 +54,6 @@ if [ -f ${APP_HOME}/aai.sh ]; then fi; -mkdir -p /opt/app/aai-graphadmin/logs/gc -chown -R aaiadmin:aaiadmin /opt/app/aai-graphadmin/logs/gc - if [ -f ${APP_HOME}/resources/aai-graphadmin-swm-vars.sh ]; then source ${APP_HOME}/resources/aai-graphadmin-swm-vars.sh; fi; @@ -81,7 +62,7 @@ MIN_HEAP_SIZE=${MIN_HEAP_SIZE:-512m}; MAX_HEAP_SIZE=${MAX_HEAP_SIZE:-1024m}; MAX_METASPACE_SIZE=${MAX_METASPACE_SIZE:-512m}; -JAVA_CMD="exec gosu aaiadmin java"; +JAVA_CMD="exec java"; JVM_OPTS="${PRE_JVM_ARGS} -Xloggc:/opt/app/aai-graphadmin/logs/gc/aai_gc.log"; JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=/opt/app/aai-graphadmin/logs/ajsc-jetty/heap-dump"; -- cgit 1.2.3-korg