chore: cleanup: drop prepare_images

This commit is contained in:
Paul Pan 2024-01-28 21:51:16 +08:00
parent 0dc241b63c
commit 33107bf3ae
Signed by: Paul
GPG Key ID: D639BDF5BA578AF4
7 changed files with 4 additions and 73 deletions

View File

@ -4,8 +4,6 @@
# resource # resource
resource/deploy resource/deploy
resource/frontend resource/frontend
resource/runner/.mark.image
resource/runner/problem/* resource/runner/problem/*
resource/runner/tmp/* resource/runner/tmp/*
resource/runner/user/* resource/runner/user/*

View File

@ -24,7 +24,7 @@ build: swagger dep
$(GOBUILD) -o woj ./cmd/woj $(GOBUILD) -o woj ./cmd/woj
clean: clean:
rm -f woj rm -f woj coverage.out coverage.html
dep: dep:
go mod download go mod download

View File

@ -35,7 +35,7 @@ func NewRunner(i *do.Injector) (Handler, error) {
storageService: do.MustInvoke[storage.Service](i), storageService: do.MustInvoke[storage.Service](i),
} }
status := hnd.runnerService.EnsureDeps(false) status := hnd.runnerService.EnsureDeps()
if status != e.Success { if status != e.Success {
hnd.log.Error("failed to ensure runner dependencies", zap.String("status", status.String())) hnd.log.Error("failed to ensure runner dependencies", zap.String("status", status.String()))
return nil, errors.New("failed to ensure dependencies") return nil, errors.New("failed to ensure dependencies")

View File

@ -61,16 +61,7 @@ func (s *service) LoadImage(cfg *depConfig) e.Status {
return e.Success return e.Success
} }
func (s *service) EnsureDeps(force bool) e.Status { func (s *service) EnsureDeps() e.Status {
mark := filepath.Join(Prefix, ".mark.image")
// check mark
if force {
_ = os.Remove(mark)
} else if file.Exist(mark) {
return e.Success
}
// full // full
fullImage := &depConfig{ fullImage := &depConfig{
tarball: filepath.Join(TmpDir, "ubuntu-full.tar.gz"), tarball: filepath.Join(TmpDir, "ubuntu-full.tar.gz"),
@ -89,8 +80,5 @@ func (s *service) EnsureDeps(force bool) e.Status {
return e.RunnerDepsBuildFailed return e.RunnerDepsBuildFailed
} }
// mark
_, _ = os.Create(mark)
return e.Success return e.Success
} }

View File

@ -19,7 +19,7 @@ var _ Service = (*service)(nil)
type Service interface { type Service interface {
// EnsureDeps build docker images // EnsureDeps build docker images
EnsureDeps(force bool) e.Status EnsureDeps() e.Status
// NewProblem = Download + Parse + Prebuild // NewProblem = Download + Parse + Prebuild
NewProblem(meta *JudgeMeta, url string, force bool) (*Config, e.Status) NewProblem(meta *JudgeMeta, url string, force bool) (*Config, e.Status)

View File

@ -1,4 +1,2 @@
# docker image mark
.mark.*
# other tmp files # other tmp files
*.zip *.zip

View File

@ -1,53 +0,0 @@
#!/usr/bin/env bash
SCRIPT_PATH=$(cd "$(dirname "$0")" && pwd)
. "$SCRIPT_PATH/common.sh"
cd "$(dirname "$0")"/../ || exit 1
# Check Mark
if [ -f ./.mark.image ]; then
log_warn "Docker images already prepared"
log_warn "If you want to re-prepare the images, please remove the file $(pwd)/.mark.image"
exit 1
fi
log_info "Preparing image..."
log_info "Checking $DOCKER - $($DOCKER --version)"
# Full
if [ -f ./tmp/ubuntu-full.tar.gz ]; then
log_info "Importing Full Image"
gzip -d -c ./tmp/ubuntu-full.tar.gz | $DOCKER load || (log_error "Import Full Image failed" && exit 1)
else
log_info "Pulling Full Image"
if ! $DOCKER pull git.0x7f.app/woj/ubuntu-full:latest; then
log_warn "Pull failed, building from scratch"
log_info "Building Full Image"
$DOCKER build -t git.0x7f.app/woj/ubuntu-full:latest -f scripts/ubuntu-full.Dockerfile . || (log_error "Build Full Image failed" && exit 1)
fi
fi
# Tiny
if [ -f ./tmp/ubuntu-tiny.tar.gz ]; then
log_info "Importing Tiny Image"
gzip -d -c ./tmp/ubuntu-tiny.tar.gz | $DOCKER load || (log_error "Import Tiny Image failed" && exit 1)
else
log_info "Pulling Tiny Image"
if ! $DOCKER pull git.0x7f.app/woj/ubuntu-run:latest; then
log_warn "Pull failed, building from scratch"
log_info "Building Tiny Image"
$DOCKER build -t git.0x7f.app/woj/ubuntu-run:latest -f scripts/ubuntu-run.Dockerfile . || (log_error "Build Tiny Image failed" && exit 1)
fi
fi
# Mark
if [ "$1" == "save" ]; then
log_info "Saving Images"
$DOCKER save git.0x7f.app/woj/ubuntu-full:latest | gzip -9 >./tmp/ubuntu-full.tar.gz
$DOCKER save git.0x7f.app/woj/ubuntu-run:latest | gzip -9 >./tmp/ubuntu-tiny.tar.gz
else
touch ./.mark.image
fi
log_info "Done"