mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-20 14:17:07 +00:00
The e2e image pointed both archive and security at azure.archive.ubuntu.com and nothing else, and the samba and pjdfstest images inherit that list. When Azure is unreachable the build has nowhere to go: Acquire::Retries just retries a dead host, every package fails, and apt exits 100 before a single test runs. Two different workflows lost runs to it tonight. Install through a helper that starts from the pristine sources.list each time and walks a list of mirrors, so Azure stays the preferred one - the reason it was pinned in the first place - without being the only one. Verified both paths against a real build: the normal one installs from Azure, and with the first entry pointed at an unroutable host the fallback logs the skip and installs from archive.ubuntu.com.
45 lines
1.4 KiB
Docker
45 lines
1.4 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
LABEL author="Chris Lu"
|
|
|
|
# Note: This e2e test image intentionally runs as root for simplicity and compatibility.
|
|
# Production images (Dockerfile.go_build) use proper user isolation with su-exec.
|
|
# For testing purposes, running as root avoids permission complexities and dependency
|
|
# on Alpine-specific tools like su-exec (not available in Ubuntu repos).
|
|
|
|
# apt-install prefers Azure's mirror, which archive.ubuntu.com is slow enough from
|
|
# GitHub-hosted runners to justify, and falls through to archive.ubuntu.com when
|
|
# Azure is unreachable - which it periodically is, and Acquire::Retries against a
|
|
# single mirror just retries a dead host. Images built FROM this one install
|
|
# through it for the same reason.
|
|
COPY apt-install /usr/local/bin/apt-install
|
|
RUN chmod +x /usr/local/bin/apt-install && \
|
|
apt-install curl fio fuse ca-certificates && \
|
|
rm -rf /tmp/* /var/tmp/*
|
|
|
|
RUN mkdir -p /etc/seaweedfs /data/filerldb2
|
|
|
|
COPY ./weed /usr/bin/
|
|
COPY ./filer.toml /etc/seaweedfs/filer.toml
|
|
COPY ./entrypoint_e2e.sh /entrypoint.sh
|
|
|
|
# volume server grpc port
|
|
EXPOSE 18080
|
|
# volume server http port
|
|
EXPOSE 8080
|
|
# filer server grpc port
|
|
EXPOSE 18888
|
|
# filer server http port
|
|
EXPOSE 8888
|
|
# master server shared grpc port
|
|
EXPOSE 19333
|
|
# master server shared http port
|
|
EXPOSE 9333
|
|
|
|
VOLUME /data
|
|
WORKDIR /data
|
|
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|