# todo: multi-stage build # todo: let playwright install all deps by itself FROM golang:1.23 RUN apt-get update && apt-get install -y ca-certificates tzdata libasound2 libatk-bridge2.0-0 libatk1.0-0 \ libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libdrm2 libgbm1 libglib2.0-0 libnspr4 libnss3 \ libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 \ libxrandr2 xvfb fonts-noto-color-emoji fonts-unifont libfontconfig1 libfreetype6 xfonts-scalable \ fonts-liberation fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otf fonts-freefont-ttf && \ rm -rf /var/lib/apt/lists/* RUN useradd -ms /bin/bash pwuser WORKDIR /app COPY go.mod go.sum ./ RUN go mod download RUN PWGO_VER=$(grep -oE "playwright-go v\S+" go.mod | sed 's/playwright-go //g') \ && go install github.com/playwright-community/playwright-go/cmd/playwright@${PWGO_VER} RUN playwright install --with-deps --no-shell chromium && \ mkdir /home/pwuser/.cache && \ mv /root/.cache/ms-playwright* /home/pwuser/.cache/ && \ chown -R pwuser:pwuser /home/pwuser/.cache && \ rm -rf /var/lib/apt/lists/* COPY . . RUN go build -o bin/worker github.com/egor3f/rssalchemy/cmd/worker CMD ["/app/bin/worker"]