跳至主要内容

The Challenge: Hardware Diversity

Developing for multiple hardware platforms introduces critical challenges:

  • Driver Complexity: Each hardware platform requires unique drivers and dependencies
  • Environment Inconsistency: Maintaining identical development setups across platforms is difficult
  • Extended Development Time: Hardware-specific configurations significantly delay product launches
  • Testing Overhead: Validating across hardware variants consumes excessive resources

Container Technology as the Solution

Containerization directly addresses these hardware diversity challenges:

  • Isolation: Containers encapsulate applications and their dependencies, eliminating conflicts with other system components
  • Portability: Containerized applications run consistently across development, testing, and production environments
  • Resource Efficiency: Containers share the host OS kernel, consuming fewer resources than virtual machines while maintaining isolation
  • DevOps Enablement: Containers bridge the gap between development and operations with consistent environments
  • Scalability: Container orchestration platforms enable easy management across diverse hardware

Advantech Container Catalog: The Enhanced Solution

While standard containerization offers benefits, Advantech's Container Catalog provides additional value:

  • Hardware-Optimized Base Images: Pre-configured images specifically tuned for Advantech hardware platforms
  • Integrated Drivers: Base images include necessary hardware drivers, eliminating complex setup procedures
  • Validated Compatibility: Thoroughly tested environments ensure reliable operation across the hardware portfolio
  • Development Acceleration: Ready-to-use images with pre-installed dependencies dramatically reduce time-to-market
  • Simplified Operations: Standardized deployment approach streamlines management of heterogeneous device fleets
資訊

Advantech Container Catalog Website provides a variety of application containers. you can visit the website to find the corresponding application for your requirements

Architecture

Container Development Comparison

Traditional Development

Using traditional Docker development requires extensive setup:

FROM python:windowsservercore-1809

# 1. Environment Variables
ENV DEBIAN_FRONTEND=noninteractive

# 2. System Dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git wget ffmpeg libsm6 libxext6 \
# ... more dependencies

# 3. Python Packages
RUN pip3 install --no-cache-dir \
ultralytics torch torchvision opencv-python \
# ... more packages

# 4. Workspace Setup
RUN mkdir -p /workspace/{app,data,models,results,logs,configs}

# Application Setup
COPY app/ /workspace/app/
CMD ["python3", "app/main.py"]

WEDA Development

With WEDA Container, development is simplified:

FROM edgesync.azurecr.io/advantech/x-edgesync-base-container:1.0.0-Ubuntu20.04-x86

# Only application-specific setup needed
COPY app/ /workspace/app/
CMD ["python3", "app/main.py"]
Best Practice

Always use version tags when specifying base images to ensure reproducible builds.

警告

Remember to handle sensitive data and credentials appropriately in your Dockerfile.

Comparison Table

FeatureTraditional DevelopmentWEDA Development
Setup TimeLonger (requires full environment setup)Quick (pre-configured)
Image SizeLarger (full dependencies)Optimized
CustomizationFull controlLimited to base image
MaintenanceManual dependency updatesAutomated updates

Usage

Building the Container

docker build -t MyApp .

Running the Container

docker run -it --gpus all \
--env DISPLAY=$DISPLAY \
MyApp