diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..091ef16c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.idea +logs +*.log +**/node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..f53aa906 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,58 @@ +# images +FROM ubuntu:latest + +# set as non-interactive +ENV DEBIAN_FRONTEND noninteractive + +# source files +ADD . /opt/crawlab + +# install python +RUN apt-get update +RUN apt-get install -y python3 python3-pip net-tools iputils-ping redis-server git nginx ntp curl + +# python soft link +RUN ln -s /usr/bin/pip3 /usr/local/bin/pip +RUN ln -s /usr/bin/python3 /usr/local/bin/python + +# install mongodb +RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 +RUN echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list +RUN apt-get update +RUN apt-get install -y mongodb-org + +# install backend +RUN pip install -U setuptools +RUN pip install -r /opt/crawlab/crawlab/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple + +# install nvm +#RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash +#RUN export NVM_DIR="$HOME/.nvm" +#RUN [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +#RUN nvm install 8.12 +#RUN nvm use 8.12 + +# install frontend +WORKDIR /opt/crawlab/frontend +#RUN npm install -g yarn pm2 +#RUN yarn install + +# nginx config & start frontend +RUN cp /opt/crawlab/crawlab.conf /etc/nginx/conf.d +RUN service nginx reload + +# start backend +WORKDIR /opt/crawlab/crawlab +CMD python app.py +CMD python flower.py +CMD python worker.py +#CMD pm2 start app.py +#CMD pm2 start flower.py +#CMD pm2 start worker.py + +# start mongodb +CMD mongod + +# start redis +CMD redis-server diff --git a/crawlab.conf b/crawlab.conf new file mode 100644 index 00000000..f0b7cef2 --- /dev/null +++ b/crawlab.conf @@ -0,0 +1,5 @@ +server { + listen 8080; + root /opt/crawlab/frontend/dist; + index index.html; +} \ No newline at end of file diff --git a/crawlab/Dockerfile b/crawlab/Dockerfile deleted file mode 100644 index b286d956..00000000 --- a/crawlab/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# images -#FROM python:latest -FROM ubuntu:latest - -# source files -ADD . /opt/crawlab - -# add dns -RUN cat /etc/resolv.conf - -# install python -RUN apt-get update -RUN apt-get install -y python3 python3-pip net-tools iputils-ping vim ntp - -# soft link -RUN ln -s /usr/bin/pip3 /usr/local/bin/pip -RUN ln -s /usr/bin/python3 /usr/local/bin/python - -# install required libraries -RUN pip install -U setuptools -RUN pip install -r /opt/crawlab/requirements.txt - -# execute apps -WORKDIR /opt/crawlab -CMD python ./bin/run_worker.py -CMD python app.py diff --git a/crawlab/docker-compose.yml b/docker-compose.yml similarity index 100% rename from crawlab/docker-compose.yml rename to docker-compose.yml