From 80e4480f0d068f6e66143eda14b983623f1114ce Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Sun, 5 Jun 2022 17:22:53 +0200 Subject: [PATCH 1/7] [mirotalksfu] - lighter docker container --- Dockerfile | 30 ++---------------------------- README.md | 4 ++-- docker-compose.template.yml | 34 ++++++++++++++++++++++------------ 3 files changed, 26 insertions(+), 42 deletions(-) diff --git a/Dockerfile b/Dockerfile index 415e1f19..e85bc3d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 +FROM node:latest WORKDIR /src @@ -9,31 +9,5 @@ RUN \ # Python 3.8 and pip RUN \ - DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata && \ - apt install -y software-properties-common && \ - add-apt-repository ppa:deadsnakes/ppa && \ apt update && \ - apt install -y python3.8 python3-pip - -# NodeJS 16.X and npm -RUN \ - apt install -y curl dirmngr apt-transport-https lsb-release ca-certificates && \ - curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get install -y nodejs && \ - npm install -g npm@latest - -# Vim editor -RUN apt-get install -y vim - -COPY package.json . - -RUN npm install - -COPY app app -COPY public public - -EXPOSE 3010/tcp -EXPOSE 40000-40100/tcp -EXPOSE 40000-40100/udp - -CMD npm start \ No newline at end of file + apt install -y python3-pip diff --git a/README.md b/README.md index fd9c9c3f..91ded52f 100644 --- a/README.md +++ b/README.md @@ -117,8 +117,8 @@ $ npm start $ cp app/src/config.template.js app/src/config.js # Copy docker-compose.template.yml in docker-compose.yml and edit it if needed $ cp docker-compose.template.yml docker-compose.yml -# Build or rebuild services - be patient, the first time will take a few minutes, in the meantime have a good coffee ;) -$ docker-compose build +# Build image and install dependencies +$ docker-compose run --rm npm install # Create and start containers $ docker-compose up # -d # Stop and remove resources diff --git a/docker-compose.template.yml b/docker-compose.template.yml index 7b05390f..7c17f1ff 100644 --- a/docker-compose.template.yml +++ b/docker-compose.template.yml @@ -1,15 +1,25 @@ version: '3' services: - mirotalksfu: - image: mirotalksfu:latest - build: - context: . - dockerfile: Dockerfile - container_name: mirotalksfu - hostname: mirotalksfu - restart: unless-stopped - ports: - - '3010:3010/tcp' - - '40000-40100:40000-40100/tcp' - - '40000-40100:40000-40100/udp' + + npm: &npm + image: mirotalksfu-npm:latest + build: + context: . + dockerfile: Dockerfile + container_name: mirotalksfu-npm + volumes: + - .:/src/ + command: -v + entrypoint: ['npm'] + + mirotalksfu: + <<: *npm + container_name: mirotalksfu + hostname: mirotalksfu + restart: unless-stopped + ports: + - '3010:3010/tcp' + - '40000-40100:40000-40100/tcp' + - '40000-40100:40000-40100/udp' + command: start From 39d73a31c53f72cdcecd24f1b0cd7a02a29f3e50 Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Mon, 6 Jun 2022 13:32:56 +0200 Subject: [PATCH 2/7] [mirotalksfu] - alpine based docker container --- Dockerfile | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index e85bc3d4..f571647b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,6 @@ -FROM node:latest +FROM node:alpine WORKDIR /src +RUN apk add --update linux-headers alpine-sdk -# gcc g++ make -RUN \ - apt-get update && \ - apt-get install -y build-essential - -# Python 3.8 and pip -RUN \ - apt update && \ - apt install -y python3-pip +RUN apk add --update py-pip From 0f2d152fc1364bb198f6e58801b064f7a2853bc3 Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Tue, 7 Jun 2022 19:13:14 +0200 Subject: [PATCH 3/7] [mirotalksfu] - pip for python 3 as default --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f571647b..857558ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,4 +3,4 @@ FROM node:alpine WORKDIR /src RUN apk add --update linux-headers alpine-sdk -RUN apk add --update py-pip +RUN apk add --update py3-pip From 0983006e2827fdf3f2a612c9a63d04148e9d1ec2 Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Fri, 24 Jun 2022 17:37:54 +0200 Subject: [PATCH 4/7] [mirotalksfu] - slim based docker container --- Dockerfile | 11 +++++++--- docker-compose.template.yml | 41 ++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index 857558ae..ede3c17f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,11 @@ -FROM node:alpine +FROM node:slim WORKDIR /src -RUN apk add --update linux-headers alpine-sdk -RUN apk add --update py3-pip +RUN \ + apt-get update && \ + apt-get install -y build-essential + +RUN \ + apt update && \ + apt install -y python3-pip diff --git a/docker-compose.template.yml b/docker-compose.template.yml index 7c17f1ff..f4df25d3 100644 --- a/docker-compose.template.yml +++ b/docker-compose.template.yml @@ -1,25 +1,24 @@ version: '3' services: + npm: &npm + image: mirotalksfu-npm:latest + build: + context: . + dockerfile: Dockerfile + container_name: mirotalksfu-npm + volumes: + - .:/src/ + command: -v + entrypoint: ['npm'] - npm: &npm - image: mirotalksfu-npm:latest - build: - context: . - dockerfile: Dockerfile - container_name: mirotalksfu-npm - volumes: - - .:/src/ - command: -v - entrypoint: ['npm'] - - mirotalksfu: - <<: *npm - container_name: mirotalksfu - hostname: mirotalksfu - restart: unless-stopped - ports: - - '3010:3010/tcp' - - '40000-40100:40000-40100/tcp' - - '40000-40100:40000-40100/udp' - command: start + mirotalksfu: + <<: *npm + container_name: mirotalksfu + hostname: mirotalksfu + restart: unless-stopped + ports: + - '3010:3010/tcp' + - '40000-40100:40000-40100/tcp' + - '40000-40100:40000-40100/udp' + command: start From 12a772b0bbc294842e506f395c48de432c6a7117 Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Tue, 5 Jul 2022 16:11:08 +0200 Subject: [PATCH 5/7] [mirotalksfu] - reduce dockerfile signature (and built image size) --- Dockerfile | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index ede3c17f..5d4bee10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,7 @@ -FROM node:slim +FROM node:16-slim WORKDIR /src RUN \ - apt-get update && \ - apt-get install -y build-essential - -RUN \ - apt update && \ - apt install -y python3-pip + DEBIAN_FRONTEND=noninteractive apt update && \ + apt install -y --no-install-recommends build-essential python3-pip From d1abe5c46bc58228205deaa052b00ca7db21c242 Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Tue, 30 Aug 2022 22:39:41 +0200 Subject: [PATCH 6/7] [mirotalksfu] - fix conflicts and fast forward --- README.md | 4 ++-- docker-compose.template.yml | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 27893b86..f1dfc323 100644 --- a/README.md +++ b/README.md @@ -160,8 +160,8 @@ $ PORT=3011 npm start $ cp app/src/config.template.js app/src/config.js # Copy docker-compose.template.yml in docker-compose.yml and edit it if needed $ cp docker-compose.template.yml docker-compose.yml -# Get official image from Docker Hub -$ docker pull mirotalk/sfu:latest +# (Optional) Get official image from Docker Hub +$ docker-compose pull # Create and start containers $ docker-compose up # -d # To stop and remove resources diff --git a/docker-compose.template.yml b/docker-compose.template.yml index c26bb766..9f51c126 100644 --- a/docker-compose.template.yml +++ b/docker-compose.template.yml @@ -6,14 +6,6 @@ services: build: context: . dockerfile: Dockerfile - container_name: mirotalksfu-npm - volumes: - - .:/src/ - command: -v - entrypoint: ['npm'] - - mirotalksfu: - <<: *npm container_name: mirotalksfu hostname: mirotalksfu restart: unless-stopped @@ -24,4 +16,3 @@ services: - '3010:3010/tcp' - '40000-40100:40000-40100/tcp' - '40000-40100:40000-40100/udp' - command: start From b6154c2574d10253b508f08f888b823fe42afd5a Mon Sep 17 00:00:00 2001 From: Laurent Goussard Date: Tue, 30 Aug 2022 23:13:00 +0200 Subject: [PATCH 7/7] [mirotalksfu] - npm install on build --- Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Dockerfile b/Dockerfile index 5d4bee10..b20d7491 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,3 +5,9 @@ WORKDIR /src RUN \ DEBIAN_FRONTEND=noninteractive apt update && \ apt install -y --no-install-recommends build-essential python3-pip + +COPY package.json . + +RUN npm install + +CMD npm start