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

Consolidate .env files. More work on dev containers.

This commit is contained in:
Dragory 2022-06-26 14:34:54 +03:00
parent 2a959f354c
commit 3773d659cc
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
17 changed files with 137 additions and 106 deletions

View file

@ -1,18 +1,27 @@
FROM ubuntu:20.04
ARG DOCKER_UID
ARG DOCKER_DEV_SSH_PASSWORD
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Set up some core packages
RUN apt-get update
RUN apt-get install -y sudo git curl
# Set up SSH access
RUN apt-get update && apt-get install -y openssh-server sudo git
RUN apt-get install -y openssh-server iptables
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
RUN echo "ubuntu:${DOCKER_DEV_SSH_PASSWORD}" | chpasswd
# Install Node.js 16
# Set up proper permissions for volumes
RUN mkdir -p /home/ubuntu/zeppelin /home/ubuntu/.vscode-remote /home/ubuntu/.vscode-server /home/ubuntu/.cache/JetBrains
RUN chown -R ubuntu /home/ubuntu
# Install Node.js 16 and packages needed to build native packages
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
RUN apt-get install -y nodejs gcc g++ make python3
CMD /usr/sbin/sshd -D -e

View file

@ -1,28 +1,33 @@
version: '3'
volumes:
mysql-data: {}
vscode-remote: {}
vscode-server: {}
jetbrains-data: {}
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
#
nginx:
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}
ports:
- ${DOCKER_WEB_PORT:?Missing DOCKER_WEB_PORT}:443
volumes:
- ../../:/zeppelin
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD?:Missing MYSQL_ROOT_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DOCKER_MYSQL_ROOT_PASSWORD?:Missing DOCKER_MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: zeppelin
MYSQL_USER: zeppelin
MYSQL_PASSWORD: ${MYSQL_PASSWORD?:Missing MYSQL_PASSWORD}
MYSQL_PASSWORD: ${DOCKER_MYSQL_PASSWORD?:Missing DOCKER_MYSQL_PASSWORD}
ports:
- ${MYSQL_PORT:?Missing MYSQL_PORT}:3306
- ${DOCKER_MYSQL_PORT:?Missing DOCKER_MYSQL_PORT}:3306
volumes:
- mysql-data:/var/lib/mysql
#
# backend:
# image: node:16
@ -50,7 +55,12 @@ services:
args:
DOCKER_UID: ${DOCKER_UID:?Missing DOCKER_UID}
DOCKER_GID: ${DOCKER_GID:?Missing DOCKER_GID}
DOCKER_DEV_SSH_PASSWORD: ${DOCKER_DEV_SSH_PASSWORD:?Missing DOCKER_DEV_SSH_PASSWORD}
ports:
- "${DEVELOPMENT_SSH_PORT:?Missing DEVELOPMENT_SSH_PORT}:22"
- "${DOCKER_DEV_SSH_PORT:?Missing DOCKER_DEV_SSH_PORT}:22"
volumes:
- ../../:/zeppelin
- ../../:/home/ubuntu/zeppelin
- ~/.ssh:/home/ubuntu/.ssh
- vscode-remote:/home/ubuntu/.vscode-remote
- vscode-server:/home/ubuntu/.vscode-server
- jetbrains-data:/home/ubuntu/.cache/JetBrains

View file

@ -2,11 +2,13 @@ FROM nginx
ARG API_DOMAIN
ARG DASHBOARD_DOMAIN
ARG API_PORT
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
RUN openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/api-cert.key -out /etc/ssl/certs/api-cert.pem -days 3650 -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 3650 -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"
RUN sed -ir "s/_API_DOMAIN_/$(echo ${API_DOMAIN} | sed 's/\./\\./g')/g" /etc/nginx/conf.d/default.conf
RUN sed -ir "s/_DASHBOARD_DOMAIN_/$(echo ${DASHBOARD_DOMAIN} | sed 's/\./\\./g')/g" /etc/nginx/conf.d/default.conf
RUN sed -ir "s/_API_PORT_/${API_PORT}/g" /etc/nginx/conf.d/default.conf

View file

@ -4,7 +4,9 @@ server {
server_name _API_DOMAIN_;
location / {
proxy_pass backend:3000;
# Using a variable here stops nginx from crashing if the dev container is restarted or becomes otherwise unavailable
set $backend_upstream devenv;
proxy_pass http://$backend_upstream:_API_PORT_;
client_max_body_size 200M;
}
@ -23,7 +25,7 @@ server {
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name dashboard.dev.zeppelin.gg;
server_name _DASHBOARD_DOMAIN_;
root /zeppelin/dashboard/dist;