MQL5-Google-Onedrive/DEPLOYMENT.md
2026-02-09 16:19:26 +00:00

2.4 KiB

MQL5 EA Container CI/CD Deployment Guide

This guide describes the unified containerized deployment system for the MQL5 Trading Automation platform.

Architecture

The system supports two deployment modes:

  1. Lightweight (Python Only): Runs management bots and dashboards. Assumes MetaTrader 5 is running elsewhere.
  2. Full (MT5 + Wine): Runs MetaTrader 5 inside the container using Wine and Xvfb.

Deployment Options

1. Local Deployment (Docker Compose)

To run the full MT5-enabled container:

docker-compose up -d mql5-ea-full

To run the lightweight version:

docker-compose up -d mql5-automation

2. CI/CD Deployment (GitHub Actions)

The repository is configured with a central CI/CD pipeline: .github/workflows/container-ci-cd.yml.

Automatic Deployment

  • On every push to main, the MT5-enabled Docker image is built and pushed to GitHub Container Registry (GHCR).
  • Image: ghcr.io/a6-9v/mql5-google-onedrive:mt5-latest

Manual Deployment

  1. Go to Actions -> Container CI/CD Deployment.
  2. Click Run workflow.
  3. Select the Target:
    • ghcr: Build and push only.
    • render: Deploy to Render.com.
    • railway: Deploy to Railway.app.
    • flyio: Deploy to Fly.io.
    • gcp: Deploy to Google Cloud Platform.
    • all: All of the above.

Prerequisites

Required Secrets (GitHub Settings)

Set these in Settings > Secrets and variables > Actions:

  • FLY_API_TOKEN: Required for Fly.io.
  • RENDER_API_KEY: Optional, for Render API.
  • RAILWAY_TOKEN: Optional, for Railway API.
  • GITHUB_TOKEN: Provided automatically by GitHub.

Container Configuration

Environment Variables

  • DISPLAY: Set to :99 for Xvfb.
  • WINEPREFIX: Location of the Wine environment (/app/.wine).
  • WINEDEBUG: Set to -all to reduce log noise.
  • PYTHONUNBUFFERED: Ensures logs are visible in real-time.

Volumes

  • /app/config: Configuration files.
  • /app/logs: Application logs.
  • /app/mt5: MetaTrader 5 data and MQL5 files.

Troubleshooting

Container fails to start

Check logs using:

docker logs mql5-ea-full

Wine issues

If Wine fails to initialize, ensure the container has enough memory (at least 2GB recommended for MT5).

Xvfb issues

The entrypoint script scripts/container_entrypoint.sh handles Xvfb startup. Ensure it is executable.


Created by Jules - Software Engineer