| |
| |
|
|
| FROM python:3.11-slim |
|
|
| |
| WORKDIR /app |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| openvpn \ |
| iptables \ |
| iproute2 \ |
| net-tools \ |
| procps \ |
| build-essential \ |
| python3-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| COPY openvpn/server.conf /etc/openvpn/server/server.conf |
| COPY openvpn/ca.crt /etc/openvpn/server/ca.crt |
| COPY openvpn/server.crt /etc/openvpn/server/server.crt |
| COPY openvpn/server.key /etc/openvpn/server/server.key |
| COPY openvpn/dh.pem /etc/openvpn/server/dh.pem |
|
|
| |
| COPY requirements.txt . |
| RUN pip install --no-cache-dir -r requirements.txt |
|
|
| |
| COPY . . |
|
|
| |
| RUN mkdir -p /tmp/vpn_client_configs \ |
| && mkdir -p /var/log/openvpn \ |
| && mkdir -p database |
|
|
| |
| ENV FLASK_APP=app.py |
| ENV FLASK_ENV=production |
| ENV PORT=7860 |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ |
| CMD curl -f http://localhost:7860/health || exit 1 |
|
|
| |
| CMD ["python", "app.py"] |
|
|
|
|