не может пройти дальше хотя все было ок буквально при предыдущем деплое, докерфайлы не менялись
Вот такой лог
Build complete! (315.36s)
Taking snapshot of files...
Pushing layer <registry-uri-5> to cache now
Pushing image to <registry-uri-6>
WORKDIR /staging
Cmd: workdir
Changed working directory to /staging
Creating directory /staging
Taking snapshot of files...
RUN cp "$(swift build --package-path /build -c release --show-bin-path)/App" ./
Cmd: /bin/sh
Args: [-c cp "$(swift build --package-path /build -c release --show-bin-path)/App" ./]
Running: [/bin/sh -c cp "$(swift build --package-path /build -c release --show-bin-path)/App" ./]
cp: cannot stat '/build/.build/x86_64-unknown-linux-gnu/release/App': No such file or directory
error building image: error building stage: failed to execute command: waiting for process to exit: exit status 1
command exited
No such file or directory же
Поглядел у себя: ls -l .build/x86_64-unknown-linux-gnu/release/ | grep App drwxr-xr-x 13 admin admin 4096 Jun 27 12:50 App.build -rw-r--r-- 1 admin admin 3552 Jun 27 12:43 App.swiftdoc -rw-r--r-- 1 admin admin 1000764 Jun 27 12:58 App.swiftmodule -rw-r--r-- 1 admin admin 68072 Jun 27 13:05 App.swiftsourceinfo
Команда компиляции свифта как выглядит?
Имедж вот так собирается FROM swift:5.8-jammy as build # Install OS updates and, if needed, sqlite3 RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ && apt-get -q update \ && apt-get -q dist-upgrade -y\ && rm -rf /var/lib/apt/lists/* # Set up a build area WORKDIR /build # First just resolve dependencies. # This creates a cached layer that can be reused # as long as your Package.swift/Package.resolved # files do not change. COPY ./Package.* ./ RUN swift package resolve # Copy entire repo into container COPY . . # Build everything, with optimizations RUN swift build -c release --static-swift-stdlib # Switch to the staging area WORKDIR /staging # Copy main executable to staging area RUN cp "$(swift build --package-path /build -c release --show-bin-path)/App" ./ # Copy resources bundled by SPM to staging area RUN find -L "$(swift build --package-path /build -c release --show-bin-path)/" -regex '.*\.resources$' -exec cp -Ra {} ./ \; # Copy any resources from the public directory and views directory if the directories exist # Ensure that by default, neither the directory nor any of its contents are writable. RUN [ -d /build/Public ] && { mv /build/Public ./Public && chmod -R a-w ./Public; } || true RUN [ -d /build/Resources ] && { mv /build/Resources ./Resources && chmod -R a-w ./Resources; } || true
Ну вот я, скорее, не понимаю, как оно работало раньше, потому что $(swift build --package-path /build -c release --show-bin-path)/App резолвится в /build/.build/x86_64-unknown-linux-gnu/release/App, а там нет App, и раньше не было
Это новий Докерфайл для нового темплейта. По новому темплейту генерируя App, по старому - Run
Вот у меня старый. Видимо, я чего-то не понимаю, но Run там тоже нет: ls -l .build/x86_64-unknown-linux-gnu/release/ | grep Run drwxr-xr-x 2 admin admin 4096 Jun 27 12:59 Run.build -rw-r--r-- 1 admin admin 352 Jun 27 12:44 Run.swiftdoc -rw-r--r-- 1 admin admin 19024 Jun 27 12:44 Run.swiftmodule -rw-r--r-- 1 admin admin 584 Jun 27 12:44 Run.swiftsourceinfo Но есть Run.build
Тут вообще нету ехек
Вот по этому - тут все удалилось
Недопонял смысла сказанного. Поясни?
Обсуждают сегодня