Tutorials

Akeneo CE 5 Docker Installationsvejledning: En Trin-for-Trin Guide

En komplet, trin-for-trin guide til installation af Akeneo Community Edition 5 med Docker og MySQL. Denne vejledning forklarer hver konfigurationsfil og kommando, perfekt for begyndere der vil opsætte deres eget PIM.

Udgivet 6. juni 2025
25 min læsning
Sivert Kjøller Bertelsen
Akeneo
Docker
PIM
Installation
Tutorial
Community Edition
MySQL
PHP

Introduktion: Hvorfor denne guide?

At opsætte Akeneo PIM, især en specifik version som CE 5, kan være en kompleks opgave, der involverer mange afhængigheder: en webserver, den korrekte PHP-version og udvidelser, en database og en søgeserver. Denne guide er resultatet af betydelig trial-and-error for at skabe en stabil, reproducerbar opsætning ved hjælp af Docker. Den er designet til udviklere, der ønsker et pålideligt lokalt miljø til udvikling, test eller endda en lille produktionsimplementering.

Kerneteknologier Forklaret

  • Akeneo CE: Et open-source Product Information Management (PIM) system bygget på det kraftfulde Symfony PHP-framework. Det hjælper dig med at centralisere og harmonisere al din produktinformation.
  • Docker: En platform, der pakker applikationer og deres afhængigheder i isolerede containere. Dette eliminerer 'det virker på min maskine'-problemet og sikrer et konsistent miljø overalt.
  • MySQL: En populær open-source relationel database, der vil gemme alle dine produktdata, attributter, familier og kategorier. Vores opsætning bruger en fjern MySQL-instans, hvilket er almindeligt i cloud-miljøer.
  • Elasticsearch: En kraftfuld søgemaskine, som Akeneo bruger til at levere hurtige og fleksible produktsøgnings- og filtreringsmuligheder i PIM'et.
  • Apache & PHP-FPM: Apache er vores webserver, der lytter efter anmodninger, mens PHP-FPM (FastCGI Process Manager) er en avanceret og yderst effektiv processor til PHP, der udfører Akeneo-applikationskoden.

Projektets Filstruktur

Før vi begynder, skal du oprette en projektmappe og placere alle konfigurationsfilerne i den. Din struktur skal se således ud:

/akeneo-ce-project/
├── Dockerfile
├── docker-compose.yml
├── akeneo-pim.local.conf
├── run.sh
├── sshd_config
├── get_composer.sh
├── env_template

docker-compose.yml Forklaret

Denne fil orkestrerer vores Docker-opsætning. Den definerer 'pim'-tjenesten, bygger imaget ved hjælp af vores Dockerfile, mapper porte og injicerer vores databaseoplysninger som miljøvariabler. Bemærk, at vi mapper tre porte: 8080 til Akeneo UI, 2222 til SSH-adgang, og 80 for at vise, at det også er muligt at eksponere standard-http-porten.

yaml
version: '3.4'

services:
  pim:
    image: 'gfacrakeneosazne.azurecr.io/akeneo_ce5:1'
    working_dir: '/'
    ports:
      - 8080:80
      - 2222:2222
      - 80:80
    environment:
      APP_DATABASE_HOST: 'gf-sqlsrv-akeneodb-s-azne.mysql.database.azure.com'
      APP_DATABASE_PORT: 'null'
      APP_DATABASE_NAME: 'akeneo_local'
      APP_DATABASE_USER: 'akeneo_pim'
      APP_DATABASE_PASSWORD: 'ghytPAQg'

Dockerfile: Opbygning af Akeneo-imaget

Det er her magien sker. Dockerfile bygger vores image lag for lag, installerer alle nødvendige systemafhængigheder, konfigurerer servere og installerer til sidst selve Akeneo. Jeg har tilføjet kommentarer for at forklare hvert større trin.

dockerfile
# Brug Ubuntu som base-image
FROM ubuntu:latest

# Installer grundlæggende afhængigheder og PHP 7.4 med alle krævede udvidelser
RUN apt update
RUN apt install --assume-yes lsb-release apt-transport-https ca-certificates wget gnupg make git
RUN DEBIAN_FRONTEND=noninteractive apt install --assume-yes php7.4-cli php7.4-apcu php7.4-bcmath php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-zip php7.4-zip php7.4-mbstring php7.4-imagick php7.4-exif

# Installer og konfigurer Apache webserver
RUN apt install --assume-yes apache2
RUN a2enmod rewrite proxy_fcgi
RUN service apache2 restart
COPY akeneo-pim.local.conf /etc/apache2/sites-available/

# Installer Node.js og Yarn til frontend-assets
RUN apt install --assume-yes nodejs
RUN apt install --assume-yes yarnpkg

# Installer og konfigurer Elasticsearch 7.x
RUN apt install --assume-yes apt-transport-https
RUN wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
RUN echo \"deb https://artifacts.elastic.co/packages/7.x/apt stable main\" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
RUN apt update && apt install --assume-yes elasticsearch
# Konfigurer Elasticsearch til et single-node cluster, essentielt for udviklingsmiljøer
RUN echo \"discovery.type: single-node\" >> /etc/elasticsearch/elasticsearch.yml

# Installer Composer (PHP-pakkehåndtering)
COPY get_composer.sh .
RUN sh get_composer.sh
RUN cp composer.phar /usr/local/bin/composer

# Download og installer Akeneo CE 5
RUN wget https://download.akeneo.com/pim-community-standard-v5.0-latest-icecat.tar.gz
RUN tar xvzf pim-community-standard-v5.0-latest-icecat.tar.gz
WORKDIR /pim-community-standard
# Vi kopierer midlertidigt .env-filen for at køre installations-make-kommandoen
COPY .env /pim-community-standard/.env.local
RUN NO_DOCKER=true make prod
RUN rm .env.local
RUN chmod -R 777 /pim-community-standard

# Færdiggør Apache-konfiguration
RUN apache2ctl configtest
RUN a2ensite akeneo-pim.local
RUN a2dissite 000-default

# Opsæt hosts-fil til lokal domænemapping
CMD echo \"127.0.0.1    akeneo-pim.local\" >> /etc/hosts

# Installer og konfigurer SSH-server for debugging-adgang
RUN apt update
RUN apt install --assume-yes openssh-server \\
     && echo \"root:Docker!\" | chpasswd
COPY sshd_config /etc/ssh/

# Kopier og forbered opstartsscriptet
COPY run.sh /
RUN chmod 777 /run.sh

# Kopier miljø-skabelonen som opstartsscriptet skal bruge
COPY env_template /

# Definer containerens entrypoint
ENTRYPOINT [\"bash\", \"/run.sh\"]

# Eksponer porte
EXPOSE 80 2222

Opstartsscriptet run.sh

Dette script er containerens entrypoint. Det udfører afgørende opstartsopgaver i den korrekte rækkefølge: det opretter dynamisk .env-filen fra skabelonen og miljøvariablerne, starter alle nødvendige tjenester (SSH, Elasticsearch, PHP, Apache), og derefter, efter en forsinkelse for at sikre, at Elasticsearch er klar, nulstiller og genopbygger det Akeneos søgeindekser. Dette sidste trin er afgørende for, at PIM'et fungerer korrekt ved første opstart.

bash
#/bin/bash

echo \"Starting ssh\"
service ssh start

echo \"apply environment variables\"
cd /pim-community-standard
rm .env
cp /env_template .env
sed -i \"s/{APP_DATABASE_HOST}/$APP_DATABASE_HOST/g\" .env
sed -i \"s/{APP_DATABASE_PORT}/$APP_DATABASE_PORT/g\" .env
sed -i \"s/{APP_DATABASE_NAME}/$APP_DATABASE_NAME/g\" .env
sed -i \"s/{APP_DATABASE_USER}/$APP_DATABASE_USER/g\" .env
sed -i \"s/{APP_DATABASE_PASSWORD}/$APP_DATABASE_PASSWORD/g\" .env
sed -i \"s/{AKENEO_PIM_URL}/$AKENEO_PIM_URL/g\" .env

echo \"Starting elastic\"
service elasticsearch stop
killall java
service elasticsearch start
echo \"Starting php\"
service php7.4-fpm start
echo \"Starting apache\"
service apache2 start

echo \"Waiting 60 seconds for elastic to start\"
sleep 60

echo \"Resetting indexes\"
php bin/console akeneo:elasticsearch:reset-indexes

echo \"Reindexing\"
php bin/console pim:product:index --all

tail -f /dev/null

Installationstrin

  1. Start Docker: Sørg for, at Docker Desktop kører på din maskine.
  2. Naviger til Projektmappen: Åbn din terminal og `cd` ind i mappen, hvor du har gemt alle konfigurationsfilerne.
  3. Kør Docker Compose: Udfør følgende kommando. `-d`-flaget kører containeren i detached mode (i baggrunden).
    docker-compose up -d --build
  4. Vent på Opsætning: Første kørsel vil tage betydelig tid, da Docker skal downloade Ubuntu-imaget og køre alle installationstrinene i Dockerfile. Efterfølgende kørsler vil være meget hurtigere. Du kan overvåge fremskridtet ved at køre `docker-compose logs -f`.
  5. Få Adgang til Akeneo: Når containeren kører, skal du åbne din webbrowser og navigere til http://localhost:8080. Du skulle se Akeneo-login-skærmen. Standard-loginoplysninger er typisk `admin` / `admin`.
  6. Debugging via SSH: Hvis du har brug for at inspicere containeren, kan du SSH ind i den ved hjælp af den port, vi har mappet. Adgangskoden er 'Docker!'.
    ssh root@localhost -p 2222

Relaterede Artikler

Omfattende teknisk gennemgang af Akeneo PIM system, herunder datamodel, attributtyper, API-muligheder og implementeringsindsigter fra den virkelige verden.

Akeneo
Open Source
PIM
Læs Artikel

Komplet guide til Product Information Management systemer. Lær hvad PIM er, hvordan det fungerer, vigtige fordele, og hvordan du vælger det rigtige PIM-system til din virksomhed.

PIM
Produktinformation
Guide
Læs Artikel