FROM 447513199460.dkr.ecr.us-east-1.amazonaws.com/amazoncorretto-21-alpine:latest

#Install packages
RUN apk update \
    && apk add curl \
    && apk add --no-cache bash openssh-client

# Install extra software needed by service
RUN apk add --no-cache python3 py3-pip aws-cli \
    && pip3 install --upgrade pip --break-system-packages \
    && pip install --no-cache-dir ansible==4.10.0 --break-system-packages

# set arguments - most are overriden by service definition 
ARG version=0.0.1
ARG bitbucket_commit
ARG bitbucket_build_number
ARG uid=99
ARG gid=99
ARG home=/home/nfadmin
ARG shell=/sbin/nologin
ARG username=noone

# set environmental variables, most are overriden by service definition
ENV ANSIBLE_PRIVATE_KEY_FILE_LOC=${home}/.ssh/netfoundry-key.pem
ENV AWS_CREDENTIAL_PROFILES_FILE=${home}/.aws/credentials
ENV ANSIBLE_WORK_DIR=/ansible
ENV TMPDIR=/tmp
ENV VERSION=${version}
ENV BITBUCKET_COMMIT=${bitbucket_commit}
ENV BITBUCKET_BUILD_NUMBER=${bitbucket_build_number}
ENV HOME=${home}

# Add noone user to run software & create directories
RUN addgroup -g ${gid} noone \
    && adduser -u ${uid} -G noone -D -h ${home} -s ${shell} ${username} \
    && mkdir -p /ansible ${home} ${home}/.aws ${home}/.ssh \
    && chown -R ${uid}:${gid} ${home}

# Set working area
WORKDIR /app

# Copy in jar file, ansible playbooks & startup script
COPY ./target/sds-${version}-SNAPSHOT.jar /app/
COPY ./startup.sh /app/
COPY ansible/ /ansible/

# Expose the REST port
EXPOSE 9302

# Define startup user
USER ${uid}:${gid}

# Define entry point
CMD ["./startup.sh"]
