debug docker

This commit is contained in:
gapodo 2022-12-05 22:06:06 +01:00
parent e40a76a158
commit a2e22c25b1
4 changed files with 126 additions and 133 deletions

View file

@ -9,105 +9,105 @@ variables:
- &gitea_test_env_image 'gitea/test_env:linux-amd64' - &gitea_test_env_image 'gitea/test_env:linux-amd64'
pipeline: pipeline:
# dummy: dummy:
image: *golang_image
commands:
- exit 0
# deps-backend:
# image: *golang_image # image: *golang_image
# pull: true
# secrets:
# - goproxy_override
# commands: # commands:
# - exit 0 # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
deps-backend: # - make deps-backend
image: *golang_image
pull: true
secrets:
- goproxy_override
commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make deps-backend
security-check: # security-check:
image: *golang_image # image: *golang_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make security-check # - make security-check
lint-backend: # lint-backend:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
environment: # environment:
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
- GOSUMDB=sum.golang.org # - GOSUMDB=sum.golang.org
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make lint-backend # - make lint-backend
checks-backend: # checks-backend:
image: *golang_image # image: *golang_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make --always-make checks-backend # - make --always-make checks-backend
fetch-tags: # fetch-tags:
image: docker:git # image: docker:git
pull: true # pull: true
commands: # commands:
- git config --add safe.directory '*' # - git config --add safe.directory '*'
- git fetch --tags --force # - git fetch --tags --force
tag-pre-condition: # tag-pre-condition:
image: drone/git # image: drone/git
pull: true # pull: true
commands: # commands:
- git update-ref refs/heads/tag_test ${CI_COMMIT_SHA} # - git update-ref refs/heads/tag_test ${CI_COMMIT_SHA}
prepare-test-env: # prepare-test-env:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- ./build/test-env-prepare.sh # - ./build/test-env-prepare.sh
build-test: # build-test:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
environment: # environment:
- GOSUMDB=sum.golang.org # - GOSUMDB=sum.golang.org
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- su gitea -c './build/test-env-check.sh' # - su gitea -c './build/test-env-check.sh'
- su gitea -c 'make backend' # - su gitea -c 'make backend'
unit-test: # unit-test:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- github_read_token # - github_read_token
- goproxy_override # - goproxy_override
environment: # environment:
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
- RACE_ENABLED=true # - RACE_ENABLED=true
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- su gitea -c 'make unit-test-coverage test-check' # - su gitea -c 'make unit-test-coverage test-check'
test-sqlite: # test-sqlite:
image: *gitea_test_env_image # image: *gitea_test_env_image
environment: # environment:
- USE_REPO_TEST_DIR=1 # - USE_REPO_TEST_DIR=1
- GOPROXY=off # - GOPROXY=off
- TAGS=bindata gogit sqlite sqlite_unlock_notify # - TAGS=bindata gogit sqlite sqlite_unlock_notify
- TEST_TAGS=bindata gogit sqlite sqlite_unlock_notify # - TEST_TAGS=bindata gogit sqlite sqlite_unlock_notify
commands: # commands:
- su gitea -c 'timeout -s ABRT 120m make test-sqlite-migration test-sqlite' # - su gitea -c 'timeout -s ABRT 120m make test-sqlite-migration test-sqlite'
when: # when:
- evaluate: 'not (CI_COMMIT_MESSAGE contains "[SKIP SQLITE TEST]")' # - evaluate: 'not (CI_COMMIT_MESSAGE contains "[SKIP SQLITE TEST]")'

View file

@ -16,10 +16,10 @@ variables:
# Docker and XGO platforms may vary in name (arm/v6/v7,...), please make sure, # Docker and XGO platforms may vary in name (arm/v6/v7,...), please make sure,
# that all platforms listed in docker_platforms are also in make_platforms # that all platforms listed in docker_platforms are also in make_platforms
# for the mapping look at docker/map-binaries.sh # for the mapping look at docker/map-binaries.sh
#- &make_platforms 'linux/amd64,linux/arm64' - &make_platforms 'linux/amd64,linux/arm64'
#- &docker_platforms 'linux/amd64,linux/arm64' - &docker_platforms 'linux/amd64,linux/arm64'
- &make_platforms 'linux/amd64' #- &make_platforms 'linux/amd64'
- &docker_platforms 'linux/amd64' #- &docker_platforms 'linux/amd64'
pipeline: pipeline:
fetch-tags: fetch-tags:
@ -99,11 +99,22 @@ pipeline:
- releaseteamtoken - releaseteamtoken
- releaseteamuser - releaseteamuser
prep-multiarch-binaries:
image: *golang_image # image reuse to reduce pull times, go not required
pull: true
# the fallback version-name used by make, defaults to main in the script use this if we change the default name
# environment:
# defaulttagname: main
commands:
- mkdir docker/bin
- ./docker/map-binaries.sh ./dist/binaries forgejo gitea ${CI_COMMIT_TAG##v}
- ./docker/map-binaries.sh ./dist/contrib environment-to-ini false ${CI_COMMIT_TAG##v}
when:
event: tag
build-docker: build-docker:
image: *buildx_plugin_image image: *buildx_plugin_image
pull: true pull: true
environment:
defaulttagname: main
settings: settings:
dockerfile: Dockerfile.ci dockerfile: Dockerfile.ci
no_cache: true no_cache: true
@ -116,7 +127,6 @@ pipeline:
- CACHEBUST=${CI_PIPELINE_NUMBER} - CACHEBUST=${CI_PIPELINE_NUMBER}
build_args_from_env: build_args_from_env:
- CI_COMMIT_TAG - CI_COMMIT_TAG
- DEFAULTTAGNAME
password: password:
from_secret: releaseteamtoken from_secret: releaseteamtoken
username: username:

View file

@ -1,36 +1,9 @@
FROM --platform=$BUILDPLATFORM alpine:3.17.0 as prep FROM --platform=$BUILDPLATFORM alpine:3.17.0 as prep
ARG BUILDPLATFORM ARG BUILDPLATFORM
RUN addgroup \
-S -g 1000 \
git && \
adduser \
-S -H -D \
-h /data/git \
-s /bin/bash \
-u 1000 \
-G git \
git && \
echo "git:*" | chpasswd -e
RUN apk --no-cache add bash && \
mkdir -p /docker/bin && \
mkdir /dist
ENV USER git
ARG DEFAULTTAGNAME
ARG CI_COMMIT_TAG
ENV DEFAULTTAGNAME=${DEFAULTTAGNAME:-main}
COPY docker /docker/ COPY docker /docker/
COPY dist /dist/
RUN /docker/map-binaries.sh /dist/binaries forgejo ${CI_COMMIT_TAG##v} && \ RUN chmod 755 /docker/root/usr/bin/entrypoint /docker/usr/local/bin/gitea /docker/root/etc/s6/gitea/* /docker/root/etc/s6/openssh/* /docker/root/etc/s6/.s6-svscan/*
/docker/map-binaries.sh /dist/contrib environment-to-ini ${CI_COMMIT_TAG##v}
RUN chmod 755 /docker/root/usr/bin/entrypoint /docker/root/etc/s6/gitea/* /docker/root/etc/s6/openssh/* /docker/root/etc/s6/.s6-svscan/* && \
find /docker/bin -name 'forgejo' -type f | xargs -I{} /bin/chmod 0755 {} && \
find /docker/bin -name 'environment-to-ini' -type f | xargs -I{} /bin/chmod 0755 {}
FROM alpine:3.17.0 FROM alpine:3.17.0
LABEL maintainer="contact@forgejo.org" LABEL maintainer="contact@forgejo.org"
@ -76,5 +49,5 @@ ENTRYPOINT ["/usr/bin/entrypoint"]
CMD ["/bin/s6-svscan", "/etc/s6"] CMD ["/bin/s6-svscan", "/etc/s6"]
COPY --from=prep /docker/root / COPY --from=prep /docker/root /
COPY --from=prep /docker/bin/$TARGETPLATFORM/forgejo /app/gitea/gitea COPY --chmod=755 ./docker/bin/$TARGETPLATFORM/* /app/gitea/
COPY --from=prep /docker/bin/$TARGETPLATFORM/environment-to-ini /usr/local/bin/environment-to-ini RUN ln -s /app/gitea/environment-to-ini /usr/local/bin/environment-to-ini

View file

@ -7,11 +7,21 @@ fi
BINARYLOOKUPPATH="${1}" BINARYLOOKUPPATH="${1}"
FILEBASENAME="${2}" FILEBASENAME="${2}"
RENAME="${3}"
if [[ ${#@} -gt 2 ]] && ! [[ "${3}" == "" ]]; then if [[ ${#@} -gt 3 ]] && ! [[ "${4}" == "" ]]; then
FILEVERSION="${3}" FILEVERSION="${4}"
else else
FILEVERSION="$DEFAULTTAGNAME" FILEVERSION="${DEFAULTTAGNAME:-main}"
fi
OUTFILENAME=""
if [[ "$RENAME" == "false" ]]; then
OUTFILENAME="${FILEBASENAME}"
elif [["$RENAME" == "true" ]]; then
OUTFILENAME=gitea
else
OUTFILENAME="${RENAME}"
fi fi
FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}" FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}"
@ -34,8 +44,8 @@ function map(){
local platform="$(grep $bin_platform "${DOCKERDIR}/archmap.txt" | cut -d':' -f2)" local platform="$(grep $bin_platform "${DOCKERDIR}/archmap.txt" | cut -d':' -f2)"
mkdir -p "${DOCKERDIR}/bin/$platform" mkdir -p "${DOCKERDIR}/bin/$platform"
echo "Mapped ${file} to $platform, copying" echo "Mapped ${file} to $platform, copying to ${DOCKERDIR}/bin/$platform/${OUTFILENAME}"
cp "${file}" "${DOCKERDIR}/bin/$platform/${FILEBASENAME}" cp "${file}" "${DOCKERDIR}/bin/$platform/${OUTFILENAME}"
} }
cd "$WS_BASE/${BINARYLOOKUPPATH}" cd "$WS_BASE/${BINARYLOOKUPPATH}"