|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #
- # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
- #
- # Creates a Docker image that runs the Bubble Launcher. You shouldn't have to use this file directly.
- #
- # For Linux and Mac OS, you can try the easier way, using a prebuilt image from DockerHub:
- #
- # /bin/bash -c "$(curl -sL https://git.bubblev.org/bubblev/bubble/raw/branch/master/docker/launcher)"
- #
- # See docs/docker-launcher.md for more information
- # Full URL for more info: https://git.bubblev.org/bubblev/bubble/src/branch/master/docs/docker-launcher.md
- #
- FROM phusion/baseimage:focal-1.0.0alpha1-amd64
- MAINTAINER jonathan@getbubblenow.com
- LABEL maintainer="jonathan@getbubblenow.com"
- LABEL license="https://getbubblenow.com/license"
-
- # Install packages
- RUN apt update -y
- RUN DEBIAN_FRONTEND=noninteractive apt upgrade -y --no-install-recommends
- RUN DEBIAN_FRONTEND=noninteractive apt install openjdk-11-jre-headless postgresql redis-server jq python3 python3-pip curl zip unzip -y --no-install-recommends
- RUN pip3 install setuptools psycopg2-binary
-
- #################
- ### Redis
- #################
- # Ensure redis runs in foreground
- RUN bash -c "sed -i -e 's/daemonize yes/daemonize no/g' /etc/redis/redis.conf"
-
- # Setup redis service
- RUN mkdir /etc/service/redis
- COPY bubble-server/src/main/resources/docker/run_redis.sh /etc/service/redis/run
-
- #################
- ### PostgreSQL
- #################
- # trust local postgresql users
- RUN bash -c "sed -i -e 's/ md5/ trust/g' $(find /etc/postgresql -mindepth 1 -maxdepth 1 -type d | sort | tail -1)/main/pg_hba.conf"
-
- # Create "root" postgres user and bubble database
- RUN bash -c "service postgresql start && sleep 5s && service postgresql status && \
- su - postgres bash -c 'createuser -h 127.0.0.1 -U postgres --createdb --createrole --superuser root' && \
- su - postgres bash -c 'createuser -h 127.0.0.1 -U postgres --createdb bubble'"
-
- # Setup PostgreSQL service
- RUN mkdir /etc/service/postgresql
- COPY bubble-server/src/main/resources/docker/run_postgresql.sh /etc/service/postgresql/run
-
- #################
- ### Bubble
- #################
- # Install packer
- RUN mkdir /bubble
- COPY bin/install_packer.sh /usr/local/bin/
- RUN /usr/local/bin/install_packer.sh
-
- # Install API jar, touch env file. Make sure we get the regular jar and not the full jar
- COPY bubble-server/target/bubble-server-*-prod.jar /bubble/bubble.jar
- RUN touch /bubble/bubble.env
-
- # Setup Bubble service
- RUN mkdir /etc/service/bubble
- COPY bubble-server/src/main/resources/docker/run_bubble.sh /etc/service/bubble/run
-
- #################
- ### Main stuff
- #################
- # Expose bubble port
- EXPOSE 8090
-
- # Phusion baseimage runs the services created above
- CMD ["/sbin/my_init"]
|