Ansible Semaphore als Docker installieren
Zuerst erstellen wir ein Verzeichnis, wo wir dann Zugriff auf die Playbooks haben.
sudo mkdir -p /opt/semaphore/playbook
Dann setzen wir auf das Verzeichnis /opt/semaphore/playbook noch Berechtigungen, da im Container der Benutzer semaphor mit der UID 1001 darauf zugreifen muss.
sudo chown -R 1001 /opt/semaphore/playbook
Nun erstellen wir uns eine docker-compose.yml Datei.
version: '3.3'
services:
  mysql:
    image: mariadb:10
    container_name: mysql
    hostname: ${SEMAPHORE_DB_HOST}
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: '${MYSQL_RANDOM_ROOT_PASSWORD}'
      MYSQL_DATABASE: ${SEMAPHORE_DB}
      MYSQL_USER: ${SEMAPHORE_DB_USER}
      MYSQL_PASSWORD: ${SEMAPHORE_DB_PASS}
  semaphore:
    env_file:
      - .env
    image: ansiblesemaphore/semaphore
    container_name: semaphore
    hostname: semaphore
    environment:
      SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER}
      SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS}
      SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST}
      SEMAPHORE_DB_PORT: ${SEMAPHORE_DB_PORT}
      SEMAPHORE_DB: ${SEMAPHORE_DB}
      SEMAPHORE_PLAYBOOK_PATH: ${SEMAPHORE_PLAYBOOK_PATH}
      SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHORE_ADMIN_PASSWORD}"
      SEMAPHORE_ADMIN_NAME: "${SEMAPHORE_ADMIN_NAME}"
      SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL}
      SEMAPHORE_ADMIN: ${SEMAPHORE_ADMIN}
      SEMAPHORE_WEB_ROOT: ${SEMAPHORE_WEB_ROOT}
    ports:
      - "${HOST_IPADDR}${HOST_PORT}:3000"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - './playbook:${SEMAPHORE_PLAYBOOK_PATH}'
    depends_on:
      - mysql
Als nächstes erstellen wir noch die .env Datei.
MYSQL_RANDOM_ROOT_PASSWORD=yes
SEMAPHORE_DB_USER=semaphore
SEMAPHORE_DB_PASS=Bubu1234
SEMAPHORE_DB_HOST=mysql
SEMAPHORE_DB_PORT=3306
SEMAPHORE_DB=semaphore
SEMAPHORE_PLAYBOOK_PATH=/etc/semaphore
SEMAPHORE_ADMIN_PASSWORD=Test1234
SEMAPHORE_ADMIN_NAME=Administrator
SEMAPHORE_ADMIN_EMAIL=root@localhost
SEMAPHORE_ADMIN=admin
SEMAPHORE_WEB_ROOT=http://127.0.0.1:3000
HOST_IPADDR=
HOST_PORT=3000
Nun starten wir den Docker Container mit docker-compose.
sudo docker compose up -d