3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 04:25:01 +00:00

Initial work on Docker support

This commit is contained in:
Dragory 2022-06-01 19:11:44 +03:00
parent 6df67da3cb
commit 2a959f354c
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
8 changed files with 169 additions and 18 deletions

View file

@ -0,0 +1,18 @@
FROM ubuntu:20.04
ARG DOCKER_UID
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Set up SSH access
RUN apt-get update && apt-get install -y openssh-server sudo git
RUN mkdir /var/run/sshd
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u "${DOCKER_UID}" ubuntu
RUN echo 'ubuntu:password' | chpasswd
# Install Node.js 16
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
CMD /usr/sbin/sshd -D -e

View file

@ -0,0 +1,56 @@
version: '3'
services:
# nginx:
# user: "${UID:?Missing UID}:${GID:?Missing GID}"
# build:
# context: ./nginx
# args:
# API_DOMAIN: ${API_DOMAIN:?Missing API_DOMAIN}
# API_PORT: ${API_PORT:?Missing API_PORT}
# DASHBOARD_DOMAIN: ${DASHBOARD_DOMAIN:?Missing DASHBOARD_DOMAIN}
# DASHBOARD_PORT: ${DASHBOARD_PORT:?Missing DASHBOARD_PORT}
# ports:
# - ${PORT:?Missing PORT}:443
# volumes:
# - ./:/zeppelin
#
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD?:Missing MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: zeppelin
MYSQL_USER: zeppelin
MYSQL_PASSWORD: ${MYSQL_PASSWORD?:Missing MYSQL_PASSWORD}
ports:
- ${MYSQL_PORT:?Missing MYSQL_PORT}:3306
#
# backend:
# image: node:16
# user: "${UID:?Missing UID}:${GID:?Missing GID}"
# working_dir: /zeppelin/backend
# restart: always
# depends_on:
# - mysql
# volumes:
# - ./:/zeppelin
# command: sh -c "npm run migrate-dev && npm run watch"
#
# dashboard:
# image: node:16
# user: "${UID:?Missing UID}:${GID:?Missing GID}"
# working_dir: /zeppelin/dashboard
# restart: always
# volumes:
# - ./:/zeppelin
# command: sh -c "npm run watch-build"
devenv:
build:
context: ./devenv
args:
DOCKER_UID: ${DOCKER_UID:?Missing DOCKER_UID}
DOCKER_GID: ${DOCKER_GID:?Missing DOCKER_GID}
ports:
- "${DEVELOPMENT_SSH_PORT:?Missing DEVELOPMENT_SSH_PORT}:22"
volumes:
- ../../:/zeppelin

View file

@ -0,0 +1,12 @@
FROM nginx
ARG API_DOMAIN
ARG DASHBOARD_DOMAIN
RUN apt-get update && apt-get install -y openssl
RUN openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/api-cert.key -out /etc/ssl/certs/api-cert.pem -days 365 -subj '/CN=*.${API_DOMAIN}' -nodes
RUN openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/dashboard-cert.key -out /etc/ssl/certs/dashboard-cert.pem -days 365 -subj '/CN=*.${DASHBOARD_DOMAIN}' -nodes
COPY ./default.conf /etc/nginx/conf.d/default.conf
RUN sed -ir "s/_API_DOMAIN_/$(echo ${API_DOMAIN} | sed -ir 's///g')/g"
RUN sed -ir "s/_DASHBOARD_DOMAIN_/$(echo ${DASHBOARD_DOMAIN} | sed 's/\./\\\\./g')/g"

View file

@ -0,0 +1,44 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _API_DOMAIN_;
location / {
proxy_pass backend:3000;
client_max_body_size 200M;
}
ssl_certificate /etc/ssl/certs/api-cert.pem;
ssl_certificate_key /etc/ssl/private/api-cert.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name dashboard.dev.zeppelin.gg;
root /zeppelin/dashboard/dist;
location / {
index index.html;
try_files $uri $uri/ /index.html;
}
ssl_certificate /etc/ssl/certs/dashboard-cert.pem;
ssl_certificate_key /etc/ssl/private/dashboard-cert.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
}