wireguard-manager/docker/Dockerfile

46 lines
No EOL
1.1 KiB
Docker

FROM alpine:latest
# ----------------------------------------
# Install required packages
# ----------------------------------------
RUN apk update && apk add --no-cache \
wireguard-tools \
wireguard-virt \
nftables \
supervisor \
nodejs \
npm \
curl \
bash
# ----------------------------------------
# Setup nftables base config
# You will manage rules from Node.js or mounted config
# ----------------------------------------
RUN mkdir -p /etc/nftables
COPY nftables.conf /etc/nftables/nftables.conf
# ----------------------------------------
# Application
# ----------------------------------------
WORKDIR /app
COPY ../package.json ./
RUN npm install --production
COPY .. .
# ----------------------------------------
# Supervisor config
# ----------------------------------------
COPY supervisor.conf /etc/
COPY start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh
# ----------------------------------------
# Volumes
# ----------------------------------------
VOLUME ["/etc/wireguard", "/etc/nftables", "/app/data"]
EXPOSE 3000
CMD ["/usr/local/bin/start.sh"]