mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-10 00:28:22 +00:00
23fb91d326
This commit separates the AIL Framework services into individual Docker containers that can be managed with docker-compose. It's intended to ease the installation, development and troubleshooting procedures for all-in-one deployments. No changes to architecture or base code are required in this commit. Changes to existing files: .gitignore * Ignore pystemon archive directory Dockerfile: * Add AIL shell environment variables * Install pystemon and crawler pip requirements into AIL virtual environment Docker-compose notes: * All containers are participating in a service network `network_mode: service:flask`. This allows the containers to share the same IP namespace to accommodate hard-coded localhost entries. * By default persistent data is saved to the following directories in the local AIL framework git directory: PASTES, HASHS, CRAWLED_SCREENSHOTS, pystemon/archives This was tested with docker-ce on Ubuntu 16.04 and MacOS. A typical deployment would look like: ``` git clone https://github.com/CIRCL/AIL-framework.git cd AIL-framework cp bin/packages/config.cfg.docker-compose-sample bin/packages/config.cfg (optionally enable activate_crawler in config.cfg) docker-compose build docker-compose up -d ```
44 lines
1.3 KiB
Docker
44 lines
1.3 KiB
Docker
FROM ubuntu:16.04
|
|
|
|
# Make sure that all updates are in place
|
|
RUN apt-get clean && apt-get update -y && apt-get upgrade -y \
|
|
&& apt-get dist-upgrade -y && apt-get autoremove -y
|
|
|
|
# Install needed packages
|
|
RUN apt-get install git python-dev build-essential \
|
|
libffi-dev libssl-dev libfuzzy-dev wget sudo -y
|
|
|
|
# Adding sudo command
|
|
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
|
|
RUN echo "root ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
|
|
# Installing AIL dependencies
|
|
RUN mkdir /opt/AIL
|
|
ADD . /opt/AIL
|
|
WORKDIR /opt/AIL
|
|
RUN ./installing_deps.sh
|
|
WORKDIR /opt/AIL
|
|
|
|
# Installing Web dependencies,
|
|
# remove all the parts below if you dont need the Web UI
|
|
WORKDIR /opt/AIL/var/www
|
|
RUN ./update_thirdparty.sh
|
|
WORKDIR /opt/AIL
|
|
|
|
# Default to UTF-8 file.encoding
|
|
ENV LANG C.UTF-8
|
|
ENV AIL_HOME /opt/AIL
|
|
ENV AIL_BIN ${AIL_HOME}/bin
|
|
ENV AIL_FLASK ${AIL_HOME}/var/www
|
|
ENV AIL_REDIS ${AIL_HOME}/redis/src
|
|
ENV AIL_ARDB ${AIL_HOME}/ardb/src
|
|
ENV AIL_VENV ${AIL_HOME}/AILENV
|
|
|
|
ENV PATH ${AIL_VENV}/bin:${AIL_HOME}:${AIL_REDIS}:${AIL_ARDB}:${AIL_BIN}:${AIL_FLASK}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
RUN ./pystemon/install.sh
|
|
RUN pip install -r /opt/pystemon/requirements.txt
|
|
RUN pip install -r /opt/AIL/crawler_requirements.txt
|
|
|
|
COPY docker_start.sh /docker_start.sh
|
|
ENTRYPOINT ["/bin/bash", "docker_start.sh"]
|