0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-09 00:10:11 -05:00

🐳 💚 Fix release build

This commit is contained in:
mathieu.brunot 2019-02-14 20:30:32 +01:00
parent e42fd1d0ce
commit 8dcf575af2
No known key found for this signature in database
GPG key ID: 81584BEAF692D7E0
3 changed files with 97 additions and 56 deletions

View file

@ -37,25 +37,9 @@ RUN apt-get update && \
make -j2 && \
make install && \
cd .. && \
rm -rf ./imagemagick; \
git clone https://github.com/creationix/nvm.git .nvm; \
bash -c "source .nvm/nvm.sh && nvm install v7.7.1"; \
bash -c "source .nvm/nvm.sh && nvm alias default v7.7.1"; \
.nvm/nvm.sh
rm -rf ./imagemagick
COPY ./scripts/lein /home/uxbox/.local/bin/lein
RUN bash -c "/home/uxbox/.local/bin/lein version"
# Copy backend source and build release
COPY ./* /home/uxbox/backend/
RUN bash -c "/home/uxbox/backend/scripts/dist"
# Once application has been built, prepare production image
FROM openjdk:8-alpine
LABEL maintainer="mathieu.brunot at monogramm dot io"
ENV NVM_DIR="/home/uxbox/.nvm"
RUN useradd -m -g users -s /bin/bash uxbox; \
passwd uxbox -d; \
@ -64,16 +48,41 @@ RUN useradd -m -g users -s /bin/bash uxbox; \
USER uxbox
WORKDIR /home/uxbox
COPY ./scripts/lein /home/uxbox/.local/bin/lein
RUN git clone https://github.com/creationix/nvm.git .nvm; \
bash -c "source .nvm/nvm.sh && nvm install v7.7.1"; \
bash -c "source .nvm/nvm.sh && nvm alias default v7.7.1"; \
bash -c ".nvm/nvm.sh"; \
bash -c "/home/uxbox/.local/bin/lein version"
# Copy backend source and build release
COPY ./* /home/uxbox/backend/
RUN bash -c "/home/uxbox/backend/scripts/dist"
# Once application has been built, prepare production image
FROM openjdk:8-jre-alpine
LABEL maintainer="mathieu.brunot at monogramm dot io"
# Add uxbox as provided by builder
COPY --from=0 /home/uxbox/backend/dist/uxbox-backend.jar /home/uxbox
COPY --from=0 /home/uxbox/backend/dist/uxbox-backend.jar /srv/uxbox/app.jar
VOLUME /srv/uxbox/resources/public
WORKDIR /srv/uxbox/
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen; \
locale-gen && update-locale LANG=en_US.UTF-8 LC_ALL=C.UTF-8
locale-gen && update-locale LANG=en_US.UTF-8 LC_ALL=C.UTF-8; \
mkdir -p /srv/uxbox/resources/public/media; \
mkdir -p /srv/uxbox/resources/public/static;
ENV \
# Locale setup
LANG=en_US.UTF-8 LC_ALL=C.UTF-8 \
# Application configuration
UXBOX_CONFIG=/srv/uxbox/config/application.properties \
# Security setup
UXBOX_SECRET=youshouldoverwritethiswithsomethingelse \
# Debug setup
@ -99,5 +108,5 @@ ENV \
EXPOSE 6060
COPY docker-entrypoint.sh .start.sh
CMD .start.sh
ENTRYPOINT ["sh", "/entrypoint.sh"]
CMD ["java", "-jar", "app.jar"]

View file

@ -1,33 +1,56 @@
#!/usr/bin/env bash
set -e
echo 'UXBOX backend'
echo "UXBOX backend Docker entrypoint initialization..."
cd uxbox/backend
echo 'Backend configuration'
sed -i \
-e "s/:secret .*/:secret \"${UXBOX_SECRET}\"/g" \
\
-e "s/:host .*/:host \"${UXBOX_DEBUG}\"/g" \
\
-e "s/:host .*/:host \"${UXBOX_SMTP_HOST}\"/g" \
-e "s/:port .*/:port \"${UXBOX_SMTP_PORT}\"/g" \
-e "s/:user .*/:user \"${UXBOX_SMTP_USER}\"/g" \
-e "s/:pass .*/:pass \"${UXBOX_SMTP_PASSWORD}\"/g" \
-e "s/:ssl .*/:ssl \"${UXBOX_SMTP_SSL}\"/g" \
-e "s/:tls .*/:tls \"${UXBOX_SMTP_TLS}\"/g" \
-e "s/:enabled .*/:enabled \"${UXBOX_SMTP_ENABLED}\"/g" \
\
-e "s/:host .*/:host \"${UXBOX_MAIL_REPLY}\"/g" \
-e "s/:port .*/:port \"${UXBOX_MAIL_FROM}\"/g" \
\
-e "s/:adapter .*/:adapter \"${UXBOX_DB_TYPE}\"/g" \
-e "s/:username .*/:username \"${UXBOX_DB_USER}\"/g" \
-e "s/:password .*/:password \"${UXBOX_DB_PASSWORD}\"/g" \
-e "s/:database-name .*/:database-name \"${UXBOX_DB_NAME}\"/g" \
-e "s/:server-name .*/:server-name \"${UXBOX_DB_HOST}\"/g" \
-e "s/:port-number .*/:port-number \"${UXBOX_DB_PORT}\"/g" \
./config/default.edn
echo 'Backend configuration...'
# If no config provided in volume, setup a default config from environment variables
if [ ! -f $APP_CONFIG ]; then
echo "Setting up initial application configuration..."
echo "# Initial configuration generated at $(date +%Y-%m-%dT%H:%M:%S%z)" > $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "# Security Configuration" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "secret=${UXBOX_SECRET}" >> $APP_CONFIG
-e "s/:host .*/:host \"${UXBOX_DEBUG}" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "# SMTP Configuration" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "smtp.host=${UXBOX_SMTP_HOST}" >> $APP_CONFIG
echo "smtp.port=${UXBOX_SMTP_PORT}" >> $APP_CONFIG
echo "smtp.user=${UXBOX_SMTP_USER}" >> $APP_CONFIG
echo "smtp.pass=${UXBOX_SMTP_PASSWORD}" >> $APP_CONFIG
echo "smtp.ssl=${UXBOX_SMTP_SSL}" >> $APP_CONFIG
echo "smtp.tls=${UXBOX_SMTP_TLS}" >> $APP_CONFIG
echo "smtp.enabled=${UXBOX_SMTP_ENABLED}" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "# Email Configuration" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "email.host=${UXBOX_MAIL_REPLY}" >> $APP_CONFIG
echo "email.port=${UXBOX_MAIL_FROM}" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "# Database Configuration" >> $APP_CONFIG
echo "# ~~~~~" >> $APP_CONFIG
echo "database.adapter=${UXBOX_DB_TYPE}" >> $APP_CONFIG
echo "database.username=${UXBOX_DB_USER}" >> $APP_CONFIG
echo "database.password=${UXBOX_DB_PASSWORD}" >> $APP_CONFIG
echo "database.database-name=${UXBOX_DB_NAME}" >> $APP_CONFIG
echo "database.server-name=${UXBOX_DB_HOST}" >> $APP_CONFIG
echo "database.port-number=${UXBOX_DB_PORT}" >> $APP_CONFIG
echo "Configuration generated."
else
echo "Configuration found."
fi
# TODO Find how to actually pass configuration file to JAR
echo 'Running backend'
java -jar /home/uxbox/uxbox-backend.jar
exec "$@"

View file

@ -37,14 +37,23 @@ RUN apt-get update && \
make -j2 && \
make install && \
cd .. && \
rm -rf ./imagemagick; \
git clone https://github.com/creationix/nvm.git .nvm; \
bash -c "source .nvm/nvm.sh && nvm install v7.7.1"; \
bash -c "source .nvm/nvm.sh && nvm alias default v7.7.1"; \
.nvm/nvm.sh
rm -rf ./imagemagick
ENV NVM_DIR="/home/uxbox/.nvm"
RUN useradd -m -g users -s /bin/bash uxbox; \
passwd uxbox -d; \
echo "uxbox ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER uxbox
WORKDIR /home/uxbox
COPY ./scripts/lein /home/uxbox/.local/bin/lein
RUN bash -c "/home/uxbox/.local/bin/lein version"
RUN git clone https://github.com/creationix/nvm.git .nvm; \
bash -c "source .nvm/nvm.sh && nvm install v7.7.1"; \
bash -c "source .nvm/nvm.sh && nvm alias default v7.7.1"; \
bash -c ".nvm/nvm.sh"; \
bash -c "/home/uxbox/.local/bin/lein version"
ENV API_URL http://127.0.0.1:6060/api