Witam, jestem zupełnie początkujący w Dokerach. Moim zadaniem jest stworzenie takiego środowiska, żeby działała na nim apka w Spring Boocie i żeby był zainstalowany Heroku CLI (wykonuję w apce operacje pomiędzy bazami danych na dwóch kontach za pomocą heroku pg:copy). Co więcej, jego rozmiar powinien być jak najmniejszy żeby bez problemu obraz się zmieścił w około 500MB (a najlepiej jeszcze mniej) przypisanego do konta Heroku.
Oto mój Dockerfile:
FROM ubuntu
# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;
# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;
# Install sudo
RUN apt-get update && \
apt-get -y install sudo
# Add user and switch to it
RUN useradd -m login && echo "login:password" | chpasswd && adduser login sudo
USER login
# Install curl and use curl
RUN echo "password" | sudo -S apt --assume-yes install curl
RUN echo "password" | sudo -S curl https://cli-assets.heroku.com/install.sh -o ~/heroku.sh
# Run Heroku script
RUN echo "password" | sudo -S sh ~/heroku.sh
# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
# Add an app and listen on port
ADD target/project-server-1.0-SNAPSHOT.jar .
COPY project-91878452-firebase-adminsdk-dxv9z-0db48a2d01.json /
EXPOSE 8000
CMD java -jar project-server-1.0-SNAPSHOT.jar
Kod ten działa, sprawdzałem na localhoście, ale na Heroku pojawia się error, że rozmiar został znacznie przekroczony.
Co więc w nim zmienić żeby rozmiar obrazu na jego podstawie utworzonego był jak najmniejszy i żeby jednocześnie spełnił założenia z początku?
Pozdrawiam cieplutko.