Akeneo PIM
Product Information Management for e-commerce.
Overview
Akeneo PIM (Product Information Management) is an open-source platform designed to centralize, manage, and enrich product data for e-commerce businesses. Founded in 2013, Akeneo has become a leading solution for companies struggling with scattered product information across multiple systems, channels, and languages. The platform excels at creating a single source of truth for product catalogs, managing complex attribute structures, handling multilingual content, and facilitating collaboration between marketing, merchandising, and technical teams.
This Docker stack combines Akeneo PIM with MySQL 8.0 for robust relational data storage and Elasticsearch 7.17 for powerful search and indexing capabilities. MySQL handles the core PIM data including product attributes, categories, user permissions, and system configurations, while Elasticsearch provides fast full-text search across product catalogs, faceted navigation, and real-time indexing of product updates. This architecture enables Akeneo to deliver sub-second search responses even with catalogs containing hundreds of thousands of SKUs.
This configuration is ideal for mid-to-large e-commerce businesses, retailers with complex product catalogs, and organizations managing multi-brand or multi-regional product portfolios. Companies dealing with rich product data like fashion retailers, electronics distributors, or B2B manufacturers will benefit most from Akeneo's advanced attribute management, media handling, and channel-specific product variations. The stack supports enterprise workflows including product approval processes, automated data quality rules, and API-driven integrations with existing ERP and e-commerce systems.
Key Features
- Advanced product attribute management with support for text, number, date, media, and custom attribute types
- Multi-channel publishing with channel-specific product variations, pricing, and availability rules
- Built-in Digital Asset Management (DAM) for organizing product images, videos, and documents
- Elasticsearch-powered product search with faceted filtering, relevance scoring, and instant results
- MySQL 8.0 InnoDB storage with ACID compliance ensuring data consistency during bulk imports and updates
- RESTful and GraphQL APIs for integrating with e-commerce platforms like Magento, Shopify, and custom systems
- Multi-locale support with translation workflows and locale-specific product information management
- Data quality management with automated validation rules, completeness tracking, and quality scoring
Common Use Cases
- 1Fashion and apparel retailers managing seasonal collections with size, color, and style variations across multiple brands
- 2Electronics distributors centralizing technical specifications, compatibility matrices, and multilingual product documentation
- 3B2B manufacturers providing different product catalogs and pricing structures for various customer segments and regions
- 4Multi-brand retailers maintaining consistent product data across owned brands while preserving brand-specific attributes
- 5International e-commerce companies managing product localization for different markets and regulatory requirements
- 6Marketplace sellers consolidating product information from multiple suppliers into standardized catalog formats
- 7Omnichannel retailers synchronizing product data between online stores, mobile apps, print catalogs, and physical locations
Prerequisites
- Minimum 4GB RAM recommended due to Elasticsearch memory requirements and Akeneo's resource-intensive operations
- Docker and Docker Compose installed with sufficient disk space for product media assets and search indices
- Port 8080 available for Akeneo web interface access
- Understanding of product information management concepts including attributes, families, categories, and channels
- Basic knowledge of MySQL database administration for backup, optimization, and user management tasks
- Familiarity with Elasticsearch concepts for search configuration and index management
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 akeneo: 3 image: akeneo/pim-community-dev:latest4 container_name: akeneo5 restart: unless-stopped6 environment: 7 APP_ENV: prod8 DATABASE_URL: mysql://${DB_USER}:${DB_PASSWORD}@mysql:3306/${DB_NAME}9 volumes: 10 - akeneo_var:/srv/pim/var11 ports: 12 - "8080:80"13 depends_on: 14 - mysql15 - elasticsearch16 networks: 17 - akeneo1819 mysql: 20 image: mysql:8.021 container_name: akeneo-mysql22 environment: 23 MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}24 MYSQL_DATABASE: ${DB_NAME}25 MYSQL_USER: ${DB_USER}26 MYSQL_PASSWORD: ${DB_PASSWORD}27 volumes: 28 - mysql_data:/var/lib/mysql29 networks: 30 - akeneo3132 elasticsearch: 33 image: docker.elastic.co/elasticsearch/elasticsearch:7.17.034 container_name: akeneo-es35 environment: 36 - discovery.type=single-node37 volumes: 38 - es_data:/usr/share/elasticsearch/data39 networks: 40 - akeneo4142volumes: 43 akeneo_var: 44 mysql_data: 45 es_data: 4647networks: 48 akeneo: 49 driver: bridge.env Template
.env
1DB_ROOT_PASSWORD=rootpassword2DB_NAME=akeneo3DB_USER=akeneo4DB_PASSWORD=changemeUsage Notes
- 1Docs: https://docs.akeneo.com/
- 2Access at http://localhost:8080 - resource intensive (4GB+ RAM)
- 3Product Information Management for multi-channel e-commerce
- 4Centralize product data: attributes, categories, media, translations
- 5Connect to e-commerce platforms via connectors (Magento, Shopify)
- 6Enterprise features: workflows, assets DAM, API rate limits
Individual Services(3 services)
Copy individual services to mix and match with your existing compose files.
akeneo
akeneo:
image: akeneo/pim-community-dev:latest
container_name: akeneo
restart: unless-stopped
environment:
APP_ENV: prod
DATABASE_URL: mysql://${DB_USER}:${DB_PASSWORD}@mysql:3306/${DB_NAME}
volumes:
- akeneo_var:/srv/pim/var
ports:
- "8080:80"
depends_on:
- mysql
- elasticsearch
networks:
- akeneo
mysql
mysql:
image: mysql:8.0
container_name: akeneo-mysql
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
networks:
- akeneo
elasticsearch
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
container_name: akeneo-es
environment:
- discovery.type=single-node
volumes:
- es_data:/usr/share/elasticsearch/data
networks:
- akeneo
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 akeneo:5 image: akeneo/pim-community-dev:latest6 container_name: akeneo7 restart: unless-stopped8 environment:9 APP_ENV: prod10 DATABASE_URL: mysql://${DB_USER}:${DB_PASSWORD}@mysql:3306/${DB_NAME}11 volumes:12 - akeneo_var:/srv/pim/var13 ports:14 - "8080:80"15 depends_on:16 - mysql17 - elasticsearch18 networks:19 - akeneo2021 mysql:22 image: mysql:8.023 container_name: akeneo-mysql24 environment:25 MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}26 MYSQL_DATABASE: ${DB_NAME}27 MYSQL_USER: ${DB_USER}28 MYSQL_PASSWORD: ${DB_PASSWORD}29 volumes:30 - mysql_data:/var/lib/mysql31 networks:32 - akeneo3334 elasticsearch:35 image: docker.elastic.co/elasticsearch/elasticsearch:7.17.036 container_name: akeneo-es37 environment:38 - discovery.type=single-node39 volumes:40 - es_data:/usr/share/elasticsearch/data41 networks:42 - akeneo4344volumes:45 akeneo_var:46 mysql_data:47 es_data:4849networks:50 akeneo:51 driver: bridge52EOF5354# 2. Create the .env file55cat > .env << 'EOF'56DB_ROOT_PASSWORD=rootpassword57DB_NAME=akeneo58DB_USER=akeneo59DB_PASSWORD=changeme60EOF6162# 3. Start the services63docker compose up -d6465# 4. View logs66docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/akeneo/run | bashTroubleshooting
- Elasticsearch bootstrap check failures on startup: Increase vm.max_map_count with 'sudo sysctl -w vm.max_map_count=262144' on Docker host
- Akeneo shows database connection errors: Verify MySQL container is fully started and DATABASE_URL environment variable matches MySQL credentials exactly
- Product search returns no results after data import: Check Elasticsearch indices are properly created by running Akeneo's search index rebuild command
- Akeneo web interface loads slowly or times out: Increase PHP memory limits and ensure adequate system resources, consider adjusting MySQL query cache settings
- File upload errors for product images: Verify akeneo_var volume has sufficient space and proper permissions for web server write access
- MySQL container fails to start with data directory errors: Remove mysql_data volume and restart to initialize fresh database, then restore from backup
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download