FROM dragonosman/ubuntu:latest-sudo
RUN adduser --disabled-password --gecos '' osman
RUN adduser osman sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER osman
CMD /bin/bash
WORKDIR /home/osman/app
RUN sudo mkdir $WORKDIR/scripts $WORKDIR/styles
COPY /scripts $WORKDIR/scripts
COPY /styles $WORKDIR/styles
COPY currency_converter.cpp index.html $WORKDIR/
RUN sudo apt-get update -y \
    && sudo apt-get install -y git \
                          g++ \
                          build-essential \
                          make \
                          wget
RUN sudo mkdir /usr/local/cmake \
    && sudo wget -O cmake-linux.sh https://cmake.org/files/v3.12/cmake-3.12.4-Linux-x86_64.sh \
    && sudo sh cmake-linux.sh -- --skip-license --prefix=/usr/local/cmake
ENV PATH="/usr/local/cmake/bin:${PATH}"
RUN sudo wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.bz2 \
    && sudo tar -xjf boost_1_68_0.tar.bz2 \
    && sudo rm -rf boost_1_68_0.tar.bz2 \
    && cd boost_1_68_0 \
    && sudo ./bootstrap.sh --prefix=/usr/local \ 
    && sudo ./b2 link=shared install
RUN sudo git clone https://github.com/flexferrum/jinja2cpp \ 
    && cd jinja2cpp \
    && sudo git submodule -q update --init \ 
    && sudo mkdir build \ 
    && cd build \
    && cmake .. -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_PREFIX_PATH:PATH=/usr/local/include -DBOOST_ROOT=/usr/local/include \
    && cmake --build . --target all \
    && cmake --build . --target install
RUN sudo git clone https://github.com/nlohmann/json
RUN cd /usr/local \
    && ls \
    && cd include \
    && ls
RUN g++ -std=c++17 -Wall -pedantic -I ./jinja2cpp/include -I ./jinja2cpp/thirdparty/nonstd/variant-light/include -I ./jinja2cpp/thirdparty/nonstd/expected-light/include -I ./jinja2cpp/thirdparty/nonstd/value-ptr-lite/include -I ./json/single_include -I /usr/local/include/ -I ./jinja2cpp/thirdparty/nonstd/value-ptr-lite/include currency_converter.cpp -L ./jinja2cpp/build -ljinja2cpp -L usr/local/lib/ -lboost_system -lpthread -o currency_converter
EXPOSE 8080
ENV apikey="AIzaSyDpOhTTtJXh6EyO_iyH26tV5tSPTH5FgDo:${apikey}"
ENV accesskey="6118470d67d40caf1f4db130ec67e1e8:${accesskey}"
RUN echo -e "\n/usr/local/lib" | sudo tee -a /etc/ld.so.conf \
    && sudo ldconfig
RUN chmod -r--r--r-- styles.css scripts.js index.html \
    && chmod a+x currency_converter
CMD ["./currency_converter", "0.0.0.0", "8080", "."]