You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Wagtail项目时出现Could not build wheels for libsass错误求助

Wagtail项目Docker构建中libsass编译失败问题

项目依赖

Django>=4.2,<5.1
wagtail>=5.2,<5.3
psycopg2-binary==2.9.9
libsass==0.22.0
django-libsass==0.9.0
django-compressor==4.4
wagtail-metadata==5.0.0
wagtail-modeltranslation==0.14
wagtail-orderable==1.2.0

Dockerfile配置

# /app/Dockerfile
# Pull the base image
FROM python:3.11.4-alpine3.17 AS builder

# Set workdirectory
WORKDIR /src/

# Enviroment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Install server packages
RUN apk update \
    && apk add --no-cache postgresql-dev gcc python3-dev musl-dev libffi-dev openssl-dev \
    && apk add --no-cache jpeg-dev libwebp-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev libxml2-dev libxslt-dev libxml2 \
    && rm -rf /var/cache/apk/* /tmp/*

# Install python packages
COPY requirements.txt .
RUN pip install --upgrade pip \
    && pip install --upgrade pip setuptools \
    && pip install --no-cache-dir -r requirements.txt

# Postgres Entrypoint
COPY src/entrypoint.sh .
ENTRYPOINT ["sh","/src/entrypoint.sh"]

# Copy needed files
COPY src .

docker-compose.yml配置

version: "3.7"

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./src/:/src/
    ports:
      - 8000:8000
    environment:
      - DJANGO_SETTINGS_MODULE=app.settings.dev
    env_file:
      - infra/dev/env_files/.env.dev
    depends_on:
      - db

  db:
    image: postgres:12.2-alpine
    restart: always
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - infra/dev/env_files/.env.dev.db

volumes:
  postgres_data:

问题

执行docker-compose up -d --build时,持续出现Could not build wheels for libsass错误。已尝试升级pip、更换不同版本的libsass,问题未解决。

解决方法

方法1:补充Alpine下编译libsass的依赖

libsass编译需要make和sassc工具,在Dockerfile的apk安装步骤中添加这两个依赖:

RUN apk update \
    && apk add --no-cache postgresql-dev gcc python3-dev musl-dev libffi-dev openssl-dev make sassc \
    && apk add --no-cache jpeg-dev libwebp-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev libxml2-dev libxslt-dev libxml2 \
    && rm -rf /var/cache/apk/* /tmp/*

方法2:替换为Debian基础镜像

Alpine的musl libc与部分C扩展兼容性较差,改用基于Debian的Python镜像可避免编译问题:

# 替换基础镜像
FROM python:3.11.4-slim-bookworm AS builder

# 安装Debian系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc python3-dev libpq-dev \
    libjpeg-dev libwebp-dev zlib1g-dev libfreetype6-dev \
    liblcms2-dev libopenjp2-7-dev libtiff5-dev tk-dev tcl-dev \
    libxml2-dev libxslt1-dev \
    && rm -rf /var/lib/apt/lists/*

方法3:使用预编译的libsass包

将requirements.txt中的libsass==0.22.0替换为libsass-static==0.22.0(需确认对应版本存在),该包提供预编译二进制文件,无需在容器内编译。


内容的提问来源于stack exchange,提问作者João Gonçalves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:52:49