Consolidate .env files. More work on dev containers.
This commit is contained in:
parent
2a959f354c
commit
3773d659cc
17 changed files with 137 additions and 106 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue