mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 15:30:39 +00:00
* Docker: improve build cache reuse * Tests: cover Docker build cache layout * Docker: fix sandbox cache mount continuations * Docker: document qr-import manifest scope * Docker: narrow e2e install inputs * CI: cache Docker builds in workflows * CI: route sandbox smoke through setup script * CI: keep sandbox smoke on script path
37 lines
1.2 KiB
Docker
37 lines
1.2 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM ubuntu:24.04@sha256:cd1dba651b3080c3686ecf4e3c4220f026b521fb76978881737d24f200828b2b
|
|
|
|
RUN --mount=type=cache,id=openclaw-install-sh-nonroot-apt-cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,id=openclaw-install-sh-nonroot-apt-lists,target=/var/lib/apt,sharing=locked \
|
|
set -eux; \
|
|
for attempt in 1 2 3; do \
|
|
if apt-get update -o Acquire::Retries=3; then break; fi; \
|
|
echo "apt-get update failed (attempt ${attempt})" >&2; \
|
|
if [ "${attempt}" -eq 3 ]; then exit 1; fi; \
|
|
sleep 3; \
|
|
done; \
|
|
apt-get -o Acquire::Retries=3 install -y --no-install-recommends \
|
|
bash \
|
|
ca-certificates \
|
|
curl \
|
|
g++ \
|
|
make \
|
|
python3 \
|
|
sudo
|
|
|
|
RUN useradd -m -s /bin/bash app \
|
|
&& echo "app ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/app
|
|
|
|
USER app
|
|
WORKDIR /home/app
|
|
|
|
ENV NPM_CONFIG_FUND=false
|
|
ENV NPM_CONFIG_AUDIT=false
|
|
|
|
COPY install-sh-common/cli-verify.sh /usr/local/install-sh-common/cli-verify.sh
|
|
COPY install-sh-common/version-parse.sh /usr/local/install-sh-common/version-parse.sh
|
|
COPY --chmod=755 install-sh-nonroot/run.sh /usr/local/bin/openclaw-install-nonroot
|
|
|
|
ENTRYPOINT ["/usr/local/bin/openclaw-install-nonroot"]
|