Running into a mapping error and cannot figure out what the error is YML seems to be valid and .env file with correct variables set in same directory as the compose. I have tried condensing the env_file line, down to one line, this did not work.
<code>services.mixpost.environment must be a mapping
</code>
<code>services.mixpost.environment must be a mapping
</code>
services.mixpost.environment must be a mapping
Here is the full YML it is copied directly from the vendors website in order to try to reduce errors. I have passed it through YML valiators and tried to clear up whitespace before but to no avail.
<code>version: '3.1'
services:
traefik:
image: "traefik"
restart: unless-stopped
command:
- "--api=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
mixpost:
image: inovector/mixpost:latest
environment:
env_file:
- .env
ports:
- "127.0.0.1:80:80"
labels:
- traefik.enable=true
- traefik.http.routers.mixpost.rule=Host(`${APP_DOMAIN}`)
- traefik.http.routers.mixpost.tls=true
- traefik.http.routers.mixpost.entrypoints=web,websecure
- traefik.http.routers.mixpost.tls.certresolver=mytlschallenge
- traefik.http.middlewares.mixpost.headers.SSLRedirect=true
- traefik.http.middlewares.mixpost.headers.STSSeconds=315360000
- traefik.http.middlewares.mixpost.headers.browserXSSFilter=true
- traefik.http.middlewares.mixpost.headers.contentTypeNosniff=true
- traefik.http.middlewares.mixpost.headers.forceSTSHeader=true
- traefik.http.middlewares.mixpost.headers.SSLHost=`${APP_DOMAIN}`
- traefik.http.middlewares.mixpost.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.mixpost.headers.STSPreload=true
- traefik.http.routers.mixpost.middlewares=mixpost@docker
volumes:
- storage:/var/www/html/storage/app
- logs:/var/www/html/storage/logs
depends_on:
- mysql
- redis
restart: unless-stopped
mysql:
image: 'mysql/mysql-server:8.0'
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- 'mysql:/var/lib/mysql'
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p ${DB_PASSWORD}"]
retries: 3
timeout: 5s
restart: unless-stopped
redis:
image: 'redis:latest'
command: redis-server --appendonly yes --replica-read-only no
volumes:
- 'redis:/data'
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
restart: unless-stopped
volumes:
traefik_data:
driver: local
mysql:
driver: local
redis:
driver: local
storage:
driver: local
logs:
driver: local
</code>
<code>version: '3.1'
services:
traefik:
image: "traefik"
restart: unless-stopped
command:
- "--api=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
mixpost:
image: inovector/mixpost:latest
environment:
env_file:
- .env
ports:
- "127.0.0.1:80:80"
labels:
- traefik.enable=true
- traefik.http.routers.mixpost.rule=Host(`${APP_DOMAIN}`)
- traefik.http.routers.mixpost.tls=true
- traefik.http.routers.mixpost.entrypoints=web,websecure
- traefik.http.routers.mixpost.tls.certresolver=mytlschallenge
- traefik.http.middlewares.mixpost.headers.SSLRedirect=true
- traefik.http.middlewares.mixpost.headers.STSSeconds=315360000
- traefik.http.middlewares.mixpost.headers.browserXSSFilter=true
- traefik.http.middlewares.mixpost.headers.contentTypeNosniff=true
- traefik.http.middlewares.mixpost.headers.forceSTSHeader=true
- traefik.http.middlewares.mixpost.headers.SSLHost=`${APP_DOMAIN}`
- traefik.http.middlewares.mixpost.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.mixpost.headers.STSPreload=true
- traefik.http.routers.mixpost.middlewares=mixpost@docker
volumes:
- storage:/var/www/html/storage/app
- logs:/var/www/html/storage/logs
depends_on:
- mysql
- redis
restart: unless-stopped
mysql:
image: 'mysql/mysql-server:8.0'
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- 'mysql:/var/lib/mysql'
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p ${DB_PASSWORD}"]
retries: 3
timeout: 5s
restart: unless-stopped
redis:
image: 'redis:latest'
command: redis-server --appendonly yes --replica-read-only no
volumes:
- 'redis:/data'
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
restart: unless-stopped
volumes:
traefik_data:
driver: local
mysql:
driver: local
redis:
driver: local
storage:
driver: local
logs:
driver: local
</code>
version: '3.1'
services:
traefik:
image: "traefik"
restart: unless-stopped
command:
- "--api=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
mixpost:
image: inovector/mixpost:latest
environment:
env_file:
- .env
ports:
- "127.0.0.1:80:80"
labels:
- traefik.enable=true
- traefik.http.routers.mixpost.rule=Host(`${APP_DOMAIN}`)
- traefik.http.routers.mixpost.tls=true
- traefik.http.routers.mixpost.entrypoints=web,websecure
- traefik.http.routers.mixpost.tls.certresolver=mytlschallenge
- traefik.http.middlewares.mixpost.headers.SSLRedirect=true
- traefik.http.middlewares.mixpost.headers.STSSeconds=315360000
- traefik.http.middlewares.mixpost.headers.browserXSSFilter=true
- traefik.http.middlewares.mixpost.headers.contentTypeNosniff=true
- traefik.http.middlewares.mixpost.headers.forceSTSHeader=true
- traefik.http.middlewares.mixpost.headers.SSLHost=`${APP_DOMAIN}`
- traefik.http.middlewares.mixpost.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.mixpost.headers.STSPreload=true
- traefik.http.routers.mixpost.middlewares=mixpost@docker
volumes:
- storage:/var/www/html/storage/app
- logs:/var/www/html/storage/logs
depends_on:
- mysql
- redis
restart: unless-stopped
mysql:
image: 'mysql/mysql-server:8.0'
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- 'mysql:/var/lib/mysql'
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p ${DB_PASSWORD}"]
retries: 3
timeout: 5s
restart: unless-stopped
redis:
image: 'redis:latest'
command: redis-server --appendonly yes --replica-read-only no
volumes:
- 'redis:/data'
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
restart: unless-stopped
volumes:
traefik_data:
driver: local
mysql:
driver: local
redis:
driver: local
storage:
driver: local
logs:
driver: local