FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617 # Many lines are copied from https://github.com/firefly-iii/firefly-iii/blob/master/Dockerfile ENV FIREFLY_VERSION 4.7.8 ENV FIREFLY_PATH /app/code ENV CURL_VERSION 7.60.0 ENV OPENSSL_VERSION 1.1.1-pre6 ENV COMPOSER_ALLOW_SUPERUSER 1 LABEL version="1.0" maintainer="robomod@xeac.org" ## Prepare third parties # Install packages RUN apt-get update -y && \ apt-get install -y --no-install-recommends libjpeg62-turbo-dev \ libpng-dev \ libldap2-dev \ libedit-dev \ libtidy-dev \ libsqlite3-dev \ libbz2-dev \ cron \ rsyslog \ locales && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # LDAP install RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && docker-php-ext-install ldap # Install latest curl RUN cd /tmp && \ wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz && \ tar -xvf openssl-${OPENSSL_VERSION}.tar.gz && \ cd openssl-${OPENSSL_VERSION} && \ ./config && \ make -j${CORES} && \ make install RUN cd /tmp && \ wget https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz && \ tar -xvf curl-${CURL_VERSION}.tar.gz && \ cd curl-${CURL_VERSION} && \ ./configure --with-ssl --host=$(gcc -dumpmachine) && \ make -j${CORES} && \ make install # Make sure that libcurl is using the newer curl libaries RUN echo "/usr/local/lib" >> /etc/ld.so.conf.d/00-curl.conf && ldconfig # Fix the link to curl: RUN rm -rf /usr/local/lib/libcurl.so.4 && ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0 /usr/local/lib/libcurl.so.4 ## Configure system # Generate locales supported by Firefly III RUN echo "en_US.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8\nfr_FR.UTF-8 UTF-8\nit_IT.UTF-8 UTF-8\nnl_NL.UTF-8 UTF-8\npl_PL.UTF-8 UTF-8\npt_BR.UTF-8 UTF-8\nru_RU.UTF-8 UTF-8\ntr_TR.UTF-8 UTF-8\n\n" > /etc/locale.gen && locale-gen # Supervisor conf ADD supervisor/ /etc/supervisor/conf.d/ # Enable apache mod rewrite and ssl RUN a2enmod rewrite RUN a2enmod ssl # Firefly apache conf ADD apache-firefly.conf /etc/apache2/sites-available/000-default.conf # Start script ADD start.sh /app/code/start.sh ## Install software # Create app code directory RUN mkdir -p /app/code WORKDIR /app/code # Get Firefly RUN wget "https://github.com/firefly-iii/firefly-iii/archive/${FIREFLY_VERSION}.tar.gz" -O - \ | tar -xz -C /app/code --strip-components=1 # Run composer RUN composer install --prefer-dist --no-dev --no-scripts --no-suggest # Expose port EXPOSE 3000 # Run start script CMD [ "/app/code/start.sh" ]