From 940c552a63a393bb40c256b82cab3a3485cd5d25 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 03:47:40 +0300 Subject: [PATCH 1/9] Optimize anek-bot docker image --- anek-bot/Dockerfile | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/anek-bot/Dockerfile b/anek-bot/Dockerfile index b904cdc..f656b16 100644 --- a/anek-bot/Dockerfile +++ b/anek-bot/Dockerfile @@ -1,17 +1,16 @@ -FROM ubuntu:14.04 -ENV BUILD_DATE=10_05_2016 -ENV TERM=xterm -RUN apt-get update -RUN apt-get install -y software-properties-common python-software-properties curl -RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -RUN apt-get install -y nodejs git git-core gcc make build-essential -RUN npm install -g nodemon mocha +FROM node:7-alpine + ENV NODE_PATH=.:/usr/lib/node_modules:/node_modules -ADD ./package.json /package.json -RUN mkdir -p /node_modules -RUN npm install --prefix / -ADD ./app /app + +RUN set -x && \ + npm install --silent -g nodemon mocha && \ + mkdir -p /node_modules + +COPY ./package.json /package.json +RUN npm install --silent --prefix / + +COPY ./app /app WORKDIR /app EXPOSE 8080 -CMD ["node", "/app/app.js"] \ No newline at end of file +CMD ["node", "/app/app.js"] From e1b17348a18715f7af929d97249f20a7104079c6 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 03:51:16 +0300 Subject: [PATCH 2/9] Improve 5minphp-bot dockerfile --- 5minphp-bot/Dockerfile | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/5minphp-bot/Dockerfile b/5minphp-bot/Dockerfile index a2e1a62..cc3358f 100644 --- a/5minphp-bot/Dockerfile +++ b/5minphp-bot/Dockerfile @@ -1,12 +1,6 @@ FROM php:7.0-alpine -RUN mkdir /bot - -COPY src/index.php /bot/ -COPY src/rollbar.php /bot/ - -RUN chmod 777 /bot - +COPY ./src /bot WORKDIR /bot/ EXPOSE 8080 From b38f134d0ff1ea7f5a7463c7c9df1dd77adef33b Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 03:56:14 +0300 Subject: [PATCH 3/9] Improve dockerfile --- gif-bot/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gif-bot/Dockerfile b/gif-bot/Dockerfile index d624aa0..57bb116 100644 --- a/gif-bot/Dockerfile +++ b/gif-bot/Dockerfile @@ -1,7 +1,11 @@ FROM golang:alpine +RUN set -x && \ + apk add --no-cache ca-certificates && \ + rm -rf /var/cache/apk/* /tmp/* + ADD . /go/src/github.com/umputun/rt-bot/gif-bot -RUN apk --update add ca-certificates + RUN \ cd /go/src/github.com/umputun/rt-bot/gif-bot && \ go build -o /srv/gif-bot && \ From 312c6c05937b52818ec81fd4f992dcfff10db613 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 03:59:59 +0300 Subject: [PATCH 4/9] Optimize docker files --- giphy-bot/Dockerfile | 13 +++++-------- grabpage-bot/Dockerfile | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/giphy-bot/Dockerfile b/giphy-bot/Dockerfile index 7ecb81f..7e41f2f 100644 --- a/giphy-bot/Dockerfile +++ b/giphy-bot/Dockerfile @@ -1,15 +1,12 @@ -FROM python:3.5.2 - -COPY requirements.txt /tmp/ - -RUN pip install -r /tmp/requirements.txt +FROM python:3.5-alpine RUN mkdir /usr/giphy-bot +WORKDIR /usr/giphy-bot/ +COPY requirements.txt /tmp/ +RUN pip install -r /tmp/requirements.txt COPY main.py /usr/giphy-bot/ -WORKDIR /usr/giphy-bot/ - EXPOSE 8080 -CMD python main.py +CMD ["python", "main.py"] diff --git a/grabpage-bot/Dockerfile b/grabpage-bot/Dockerfile index 87f6bea..e476dfd 100644 --- a/grabpage-bot/Dockerfile +++ b/grabpage-bot/Dockerfile @@ -1,15 +1,12 @@ -FROM python:3.5.2 - -COPY requirements.txt /tmp/ - -RUN pip install -r /tmp/requirements.txt +FROM python:3.5-alpine RUN mkdir /usr/grabpage-bot +WORKDIR /usr/grabpage-bot/ +COPY requirements.txt /tmp/ +RUN pip install -r /tmp/requirements.txt COPY main.py /usr/grabpage-bot/ -WORKDIR /usr/grabpage-bot/ - EXPOSE 8080 -CMD python main.py \ No newline at end of file +CMD ["python", "main.py"] From e7507f5de6e1f5d67e5632cb2f035e4d40700378 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 04:16:20 +0300 Subject: [PATCH 5/9] Optimize dockerfiles --- guido-bot/Dockerfile | 4 ++-- hello/Dockerfile | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/guido-bot/Dockerfile b/guido-bot/Dockerfile index edc9933..90ac70a 100644 --- a/guido-bot/Dockerfile +++ b/guido-bot/Dockerfile @@ -1,3 +1,3 @@ -FROM python +FROM python:3.5-alpine RUN pip install flask -CMD echo "import this,re,flask,json,base64\na=flask.Flask(__name__)\ng64=b'IVtndWlkb10oaHR0cHM6Ly9wYnMudHdpbWcuY29tL3Byb2ZpbGVfaW1hZ2VzLzQyNDQ5NTAwNC9HdWlkb0F2YXRhcl80MDB4NDAwLmpwZykK'\ng=base64.b64decode(g64).decode('utf-8')\nz=''.join([this.d.get(c,c) for c in this.s])\nf_g=lambda s:re.search('.*?(guido|гвидо)',s,re.I) is not None\nm_a=lambda r:f_g(r.get('text','')) and r.get('username','')!='rt-bot'\ndef h():return (json.dumps({'text':g+z, 'bot': 'g-bot'}),201) if m_a(flask.request.json) else ('',417)\na.route('/event',methods=['POST'])(h)\na.run('0.0.0.0',8080)"|python \ No newline at end of file +CMD echo -e "import this,re,flask,json,base64\na=flask.Flask(__name__)\ng64=b'IVtndWlkb10oaHR0cHM6Ly9wYnMudHdpbWcuY29tL3Byb2ZpbGVfaW1hZ2VzLzQyNDQ5NTAwNC9HdWlkb0F2YXRhcl80MDB4NDAwLmpwZykK'\ng=base64.b64decode(g64).decode('utf-8')\nz=''.join([this.d.get(c,c) for c in this.s])\nf_g=lambda s:re.search('.*?(guido|гвидо)',s,re.I) is not None\nm_a=lambda r:f_g(r.get('text','')) and r.get('username','')!='rt-bot'\ndef h():return (json.dumps({'text':g+z, 'bot': 'g-bot'}),201) if m_a(flask.request.json) else ('',417)\na.route('/event',methods=['POST'])(h)\na.run('0.0.0.0',8080)"|python diff --git a/hello/Dockerfile b/hello/Dockerfile index 7805465..8c7474c 100644 --- a/hello/Dockerfile +++ b/hello/Dockerfile @@ -1,11 +1,5 @@ -FROM ubuntu:14.04.5 +FROM perl:5 -RUN apt-get update && apt-get install -y \ - curl \ - gcc \ - make - -RUN curl --silent https://raw.githubusercontent.com/miyagawa/cpanminus/1.7039/cpanm | perl - App::cpanminus RUN cpanm Carton@v1.0.22 ADD cpanfile /app/ From 5231966139a0388ef2d82d5fc22ea7d20b0ff7d3 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 04:25:59 +0300 Subject: [PATCH 6/9] Optimize docker files --- ksenks-bot/Dockerfile | 8 ++++---- loro-bot/Dockerfile | 10 +++------- loro-bot/{Readme.md => README.md} | 0 loro-bot/bot.py | 4 ++-- loro-bot/requirements.txt | 1 - 5 files changed, 9 insertions(+), 14 deletions(-) rename loro-bot/{Readme.md => README.md} (100%) diff --git a/ksenks-bot/Dockerfile b/ksenks-bot/Dockerfile index b29f04e..0a9b55a 100644 --- a/ksenks-bot/Dockerfile +++ b/ksenks-bot/Dockerfile @@ -1,17 +1,17 @@ FROM strayge/alpine-py3-numpy-scipy -RUN apk add --update --no-cache ffmpeg +RUN set -x && \ + apk add --update --no-cache ffmpeg && \ + rm -rf /var/cache/apk/* /tmp/* COPY requirements.txt /tmp/ RUN pip3 install --no-cache-dir --disable-pip-version-check -r /tmp/requirements.txt RUN mkdir /usr/ksenks-bot/ - COPY . /usr/ksenks-bot/ - WORKDIR /usr/ksenks-bot/ EXPOSE 8080 -CMD python3 -u main.py +CMD ["python3", "-u", "main.py"] diff --git a/loro-bot/Dockerfile b/loro-bot/Dockerfile index 9d9f590..6110dc5 100644 --- a/loro-bot/Dockerfile +++ b/loro-bot/Dockerfile @@ -1,16 +1,12 @@ -FROM python:3.5.2 +FROM python:3.5-alpine COPY requirements.txt /tmp/ RUN pip install -r /tmp/requirements.txt - RUN mkdir /usr/loro-bot - -COPY . /usr/loro-bot - +COPY . /usr/loro-bot WORKDIR /usr/loro-bot EXPOSE 8080 -CMD gunicorn --bind 0.0.0.0:8080 wsgi:app - +CMD ["gunicorn", "--bind", "0.0.0.0:8080", "wsgi:app"] diff --git a/loro-bot/Readme.md b/loro-bot/README.md similarity index 100% rename from loro-bot/Readme.md rename to loro-bot/README.md diff --git a/loro-bot/bot.py b/loro-bot/bot.py index 5939a42..568e5a4 100644 --- a/loro-bot/bot.py +++ b/loro-bot/bot.py @@ -2,7 +2,7 @@ import os import markovify -import ujson as json +import json from flask import Flask, current_app, request, Response @@ -67,7 +67,7 @@ def process_message(message): def event_handler(): try: - data = json.loads(request.data) + data = json.loads(request.data.decode('utf-8')) except ValueError: return silence_response() diff --git a/loro-bot/requirements.txt b/loro-bot/requirements.txt index ba30522..e95cfa6 100644 --- a/loro-bot/requirements.txt +++ b/loro-bot/requirements.txt @@ -1,4 +1,3 @@ Flask==0.11.1 markovify==0.4.3 -ujson==1.35 gunicorn==19.6.0 From dfe02a42aab5eb872daba3ac7bd9ed24f8090565 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 05:04:09 +0300 Subject: [PATCH 7/9] Improve some docker files --- memberberries/Dockerfile | 12 +++++------- noter-bot/Dockerfile | 31 +++++++++++++++++-------------- rt-repl-bot/Dockerfile | 2 +- rtnumber-bot/Dockerfile | 22 +++++++++++----------- 4 files changed, 34 insertions(+), 33 deletions(-) diff --git a/memberberries/Dockerfile b/memberberries/Dockerfile index 9d157c5..c211c28 100644 --- a/memberberries/Dockerfile +++ b/memberberries/Dockerfile @@ -1,14 +1,12 @@ FROM microsoft/dotnet:latest - ENV ASPNETCORE_ENVIRONMENT Production -COPY . /app - +RUN mkdir /app WORKDIR /app - -RUN ["dotnet", "restore"] - -RUN ["dotnet", "build"] +COPY ./project.json /app +RUN dotnet restore +COPY . /app +RUN dotnet build EXPOSE 8080/tcp diff --git a/noter-bot/Dockerfile b/noter-bot/Dockerfile index 5a6e69d..3022eef 100644 --- a/noter-bot/Dockerfile +++ b/noter-bot/Dockerfile @@ -1,23 +1,26 @@ FROM anapsix/alpine-java:8_jdk -RUN mkdir bot -ADD src /bot/src -ADD pom.xml /bot - -RUN wget http://ftp.fau.de/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -RUN tar -zxvf apache-maven-3.3.9-bin.tar.gz -RUN rm apache-maven-3.3.9-bin.tar.gz -RUN mv apache-maven-3.3.9 /usr/lib/mvn - ENV M2_HOME=/usr/lib/mvn ENV M2=$M2_HOME/bin ENV PATH $PATH:$JAVA_HOME:$JAVA:$M2_HOME:$M2 -RUN cd /bot \ - && mvn install dependency:copy-dependencies \ - && mv target/dependency . \ - && mv target/bot.jar . \ - && rm -r target src pom.xml /usr/lib/mvn +ADD http://ftp.fau.de/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz /tmp + +RUN set -x && \ + tar -xvzf /tmp/apache-maven-3.3.9-bin.tar.gz -C /tmp && \ + mv /tmp/apache-maven-3.3.9 /usr/lib/mvn && \ + rm -rf /tmp/* + +RUN mkdir bot +ADD src /bot/src +ADD pom.xml /bot + +RUN set -x && \ + cd /bot && \ + mvn install -q dependency:copy-dependencies && \ + mv target/dependency . && \ + mv target/bot.jar . && \ + rm -r target src pom.xml /usr/lib/mvn WORKDIR /bot diff --git a/rt-repl-bot/Dockerfile b/rt-repl-bot/Dockerfile index f4d3f1d..b323e00 100644 --- a/rt-repl-bot/Dockerfile +++ b/rt-repl-bot/Dockerfile @@ -5,4 +5,4 @@ COPY project.clj /usr/src/app/ RUN lein deps COPY . /usr/src/app RUN mv "$(lein ring uberjar | sed -n 's/^Created \(.*standalone\.jar\)/\1/p')" app-standalone.jar -CMD ["java", "-jar", "-Djava.security.policy=.java.policy", "app-standalone.jar"] \ No newline at end of file +CMD ["java", "-jar", "-Djava.security.policy=.java.policy", "app-standalone.jar"] diff --git a/rtnumber-bot/Dockerfile b/rtnumber-bot/Dockerfile index 441fc85..5e93acb 100644 --- a/rtnumber-bot/Dockerfile +++ b/rtnumber-bot/Dockerfile @@ -1,22 +1,22 @@ FROM python:3.5-alpine +ADD https://github.com/disqus/disqus-python/archive/master.zip /tmp/disqus-python.zip + RUN set -x && \ - apk add --no-cache --virtual builddeps ca-certificates && \ + cd /tmp/ && \ + unzip -x /tmp/disqus-python.zip && \ + cd disqus-python-master && \ + python3 setup.py install && \ + apk add --no-cache ca-certificates && \ rm -rf /var/cache/apk/* /tmp/* COPY requirements.txt /tmp/ -RUN pip3 install --no-cache-dir --disable-pip-version-check -r /tmp/requirements.txt - -RUN apk --no-cache add git && cd /tmp/ && git clone https://github.com/disqus/disqus-python.git && \ - cd disqus-python && python3 setup.py install - -RUN mkdir /usr/rtnumber-bot/ - -COPY . /usr/rtnumber-bot/ +RUN pip install --no-cache-dir --disable-pip-version-check -r /tmp/requirements.txt -WORKDIR /usr/rtnumber-bot/ +COPY . /usr/rtnumber-bot +WORKDIR /usr/rtnumber-bot EXPOSE 8080 -CMD python3 -u main.py +CMD ["python3", "-u", "main.py"] From 7a31766fc19015f17201f3a6f53ceae7595e5a55 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 05:18:39 +0300 Subject: [PATCH 8/9] Improve docker files --- search-bot/Dockerfile | 4 +++- sovet-bot/Dockerfile | 4 ++-- stat-bot/Dockerfile | 25 ++++++++++--------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/search-bot/Dockerfile b/search-bot/Dockerfile index c9f546a..b909d9f 100644 --- a/search-bot/Dockerfile +++ b/search-bot/Dockerfile @@ -1,7 +1,9 @@ FROM golang:alpine +RUN apk add --no-cache ca-certificates + ADD . /go/src/github.com/umputun/rt-bot/search-bot -RUN apk --update add ca-certificates + RUN \ cd /go/src/github.com/umputun/rt-bot/search-bot && \ go build -o /srv/search-bot && \ diff --git a/sovet-bot/Dockerfile b/sovet-bot/Dockerfile index d8ab17f..f8423e6 100644 --- a/sovet-bot/Dockerfile +++ b/sovet-bot/Dockerfile @@ -6,10 +6,10 @@ WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ -RUN npm install +RUN npm install --silent # Bundle app source COPY . /usr/src/app EXPOSE 8080 -CMD [ "npm", "start" ] \ No newline at end of file +CMD ["npm", "start"] diff --git a/stat-bot/Dockerfile b/stat-bot/Dockerfile index 18e74fa..0edb658 100644 --- a/stat-bot/Dockerfile +++ b/stat-bot/Dockerfile @@ -1,22 +1,17 @@ -FROM ubuntu:14.04.5 +FROM perl:5 -RUN apt-get update -RUN apt-get install -y curl -RUN apt-get install -y build-essential -RUN curl -L http://cpanmin.us | sudo perl - App::cpanminus -RUN cpanm JSON -RUN curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Mojolicious +ADD http://download.cdn.yandex.net/mystem/mystem-2.1-linux3.2-64bit.tar.gz /tmp/mystem.tar.gz -WORKDIR /stat-bot +RUN cpanm Mojolicious JSON -RUN curl -L -O http://download.cdn.yandex.net/mystem/mystem-2.1-linux3.2-64bit.tar.gz -RUN tar -xvf mystem-2.1-linux3.2-64bit.tar.gz -RUN chmod +x mystem +COPY . /stat-bot +WORKDIR /stat-bot -ADD stat-bot.pl /stat-bot -RUN mkdir lib -ADD lib/StatBot.pm /stat-bot/lib +RUN set -x && \ + tar -xvf /tmp/mystem.tar.gz && \ + chmod +x mystem && \ + rm -rf /tmp/* EXPOSE 8080 -CMD ["perl", "stat-bot.pl"] \ No newline at end of file +CMD ["perl", "stat-bot.pl"] From f3d7ca782e8401bdcb47c1a78b73652870ebf701 Mon Sep 17 00:00:00 2001 From: Sergey Levitin Date: Sun, 20 Nov 2016 05:30:33 +0300 Subject: [PATCH 9/9] Optimize dockerfile --- .travis.yml | 3 --- wiki-bot/Dockerfile | 30 +++++++++++++++--------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index 54cec28..8e5c991 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,6 @@ services: cache: directories: - $HOME/.cache/pip - - /var/lib/docker/image - - /var/lib/docker/containers - - /var/lib/docker/aufs env: SSL_KEY: nginx.key diff --git a/wiki-bot/Dockerfile b/wiki-bot/Dockerfile index 28c8674..b1a072b 100644 --- a/wiki-bot/Dockerfile +++ b/wiki-bot/Dockerfile @@ -1,26 +1,26 @@ -FROM java:latest +FROM java:8-alpine MAINTAINER Mike Shemanskiy -RUN mkdir bot -ADD src /bot/src -ADD pom.xml /bot - -RUN wget http://ftp.fau.de/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -RUN tar -zxvf apache-maven-3.3.9-bin.tar.gz -RUN rm apache-maven-3.3.9-bin.tar.gz -RUN mv apache-maven-3.3.9 /usr/lib/mvn - ENV M2_HOME=/usr/lib/mvn ENV M2=$M2_HOME/bin ENV PATH $PATH:$JAVA_HOME:$JAVA:$M2_HOME:$M2 -RUN cd /bot \ - && mvn package \ - && mv target/rtbot-0.0.1-SNAPSHOT.jar . \ - && rm -r target src pom.xml /usr/lib/mvn +ADD http://ftp.fau.de/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz /tmp/ +RUN cd /tmp/ && \ + tar -zxvf apache-maven-3.3.9-bin.tar.gz && \ + rm apache-maven-3.3.9-bin.tar.gz && \ + mv apache-maven-3.3.9 /usr/lib/mvn && \ + rm -rf /tmp/* && \ + mkdir -p /bot + +ADD . /src WORKDIR /bot +RUN cd /src/ && mvn -q package \ + && mv target/rtbot-0.0.1-SNAPSHOT.jar /bot \ + && rm -rf /src /usr/lib/mvn /tmp/* + EXPOSE 8080 -CMD ["java", "-jar", "rtbot-0.0.1-SNAPSHOT.jar"] \ No newline at end of file +CMD ["java", "-jar", "rtbot-0.0.1-SNAPSHOT.jar"]