Migrate to flrnnc Docker Hub organization.
This commit is contained in:
@@ -28,7 +28,7 @@ build:
|
|||||||
extends: .parallel
|
extends: .parallel
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_TAG
|
- if: $CI_COMMIT_TAG
|
||||||
- if: $CI_MERGE_REQUEST_APPROVED
|
- if: $CI_MERGE_REQUEST_TITLE !~ /^Draft/
|
||||||
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE == "weekly-build"
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE == "weekly-build"
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@@ -52,7 +52,7 @@ test:
|
|||||||
- TARGET: unstable
|
- TARGET: unstable
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_TAG
|
- if: $CI_COMMIT_TAG
|
||||||
- if: $CI_MERGE_REQUEST_APPROVED
|
- if: $CI_MERGE_REQUEST_TITLE !~ /^Draft/
|
||||||
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE == "weekly-build"
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE == "weekly-build"
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
@@ -144,8 +144,9 @@ weekly-build-scheduler:
|
|||||||
|
|
||||||
code_quality:
|
code_quality:
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_MERGE_REQUEST_APPROVED
|
- if: $CI_MERGE_REQUEST_TITLE !~ /^Draft/
|
||||||
|
|
||||||
semgrep-sast:
|
semgrep-sast:
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_MERGE_REQUEST_APPROVED
|
- if: $CI_MERGE_REQUEST_TITLE !~ /^Draft/
|
||||||
|
|
||||||
|
|||||||
17
CHANGELOG.md
17
CHANGELOG.md
@@ -7,7 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
|
|
||||||
<!-- To log a new version, copy, uncomment, add your changes, then add the tag shortcut at the end of the file
|
<!-- To log a new version, copy, uncomment, add your changes, then add the tag shortcut at the end of the file
|
||||||
## [Unreleased]
|
<!-- tag --!>
|
||||||
|
## [tag]
|
||||||
### Added
|
### Added
|
||||||
### Changed
|
### Changed
|
||||||
### Deprecated
|
### Deprecated
|
||||||
@@ -16,9 +17,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Security
|
### Security
|
||||||
|
|
||||||
[tag]: url_to_tag
|
[tag]: url_to_tag
|
||||||
<!-- --/>
|
<!-- /tag --!>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<!-- 3.2.4 -->
|
||||||
|
## [3.2.4]
|
||||||
|
### Added
|
||||||
|
* Publish to the new flrnnc/seafile-client repository.
|
||||||
|
* Documentation template for old flowgunso/seafile-client images.
|
||||||
|
### Changed
|
||||||
|
* Use new CI/CD variables.
|
||||||
|
|
||||||
|
[3.2.4]: https://gitlab.com/florian.anceau/docker-seafile-client/-/tags/3.2.4
|
||||||
|
<!-- /3.2.4 -->
|
||||||
|
|
||||||
|
|
||||||
## [3.2.3] - 2024/06/27
|
## [3.2.3] - 2024/06/27
|
||||||
### Changed
|
### Changed
|
||||||
- Update the build badge date on builds. (#61)
|
- Update the build badge date on builds. (#61)
|
||||||
|
|||||||
22
Makefile
22
Makefile
@@ -1,5 +1,6 @@
|
|||||||
TARGET?=unstable
|
TARGET?=unstable
|
||||||
|
|
||||||
|
# Mocking
|
||||||
mock:
|
mock:
|
||||||
docker compose -f tests/mock/compose.yaml up -d
|
docker compose -f tests/mock/compose.yaml up -d
|
||||||
|
|
||||||
@@ -16,6 +17,10 @@ shell:
|
|||||||
logs:
|
logs:
|
||||||
docker compose -f tests/mock/compose.yaml logs -f client
|
docker compose -f tests/mock/compose.yaml logs -f client
|
||||||
|
|
||||||
|
ps:
|
||||||
|
docker compose -f tests/mock/compose.yaml ps
|
||||||
|
|
||||||
|
# Build
|
||||||
build:
|
build:
|
||||||
TARGET=${TARGET} CI_COMMIT_TAG=${CI_COMMIT_TAG} bash scripts/build-images.sh
|
TARGET=${TARGET} CI_COMMIT_TAG=${CI_COMMIT_TAG} bash scripts/build-images.sh
|
||||||
|
|
||||||
@@ -25,17 +30,18 @@ build-test:
|
|||||||
test:
|
test:
|
||||||
docker run seafile-client:test
|
docker run seafile-client:test
|
||||||
|
|
||||||
|
# CI/CD
|
||||||
documents:
|
documents:
|
||||||
python scripts/make-documents.py docker.md.j2
|
python scripts/make-documents.py docker.md.j2
|
||||||
|
python scripts/make-documents.py docker-old.j2
|
||||||
python scripts/make-documents.py seafile.md.j2
|
python scripts/make-documents.py seafile.md.j2
|
||||||
|
|
||||||
publish-images:
|
publish-images:
|
||||||
TARGET=${TARGET} \
|
TARGET=${TARGET} \
|
||||||
DOCKER_HUB_BOT_USERNAME=${DOCKER_HUB_BOT_USERNAME} \
|
DOCKER_REGISTRY_USERNAME=${DOCKER_REGISTRY_USERNAME} \
|
||||||
DOCKER_HUB_BOT_TOKEN=${DOCKER_HUB_BOT_TOKEN} \
|
DOCKER_REGISTRY_TOKEN=${DOCKER_REGISTRY_TOKEN} \
|
||||||
DOCKER_HUB_OWNER_USERNAME=${DOCKER_HUB_OWNER_USERNAME} \
|
DOCKER_REGISTRY_IMAGE_FLOWGUNSO=${DOCKER_REGISTRY_IMAGE_FLOWGUNSO} \
|
||||||
DOCKER_HUB_OWNER_TOKEN=${DOCKER_HUB_OWNER_TOKEN} \
|
DOCKER_REGISTRY_IMAGE_FLRNNC=${DOCKER_REGISTRY_IMAGE_FLRNCC} \
|
||||||
DOCKER_HUB_IMAGE=${DOCKER_HUB_IMAGE} \
|
|
||||||
bash scripts/publish-images.sh
|
bash scripts/publish-images.sh
|
||||||
|
|
||||||
publish-documents:
|
publish-documents:
|
||||||
@@ -44,10 +50,12 @@ publish-documents:
|
|||||||
|
|
||||||
save:
|
save:
|
||||||
mkdir -p tarballs/
|
mkdir -p tarballs/
|
||||||
docker save --output tarballs/${TARGET}.tar seafile-client:${TARGET}
|
docker save --output tarballs/${TARGET}-flowgunso.tar seafile-client:${TARGET}-flowgunso
|
||||||
|
docker save --output tarballs/${TARGET}-flrnnc.tar seafile-client:${TARGET}-flrnnc
|
||||||
|
|
||||||
load:
|
load:
|
||||||
docker load --input tarballs/${TARGET}.tar
|
docker load --input tarballs/${TARGET}-flowgunso.tar
|
||||||
|
docker load --input tarballs/${TARGET}-flrnnc.tar
|
||||||
|
|
||||||
schedule-weekly-build:
|
schedule-weekly-build:
|
||||||
python scripts/schedule-build.py
|
python scripts/schedule-build.py
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
> ⚠️ Please consider sponsoring this project to help me maintaining and improving it. As of right now, you can support me through Liberay, available in the project badges
|
> ⚠️ Please consider sponsoring this project to help me maintaining and improving it. As of right now, you can support me through Liberay, available in the project badges
|
||||||
|
|
||||||
|
> This project is switching namespaces. The sources previously in [flwgnso-docker/docker-seafile-client](https://gitlab.com/flwgns-docker/seafile-client) are now in [florian.anceau-oss/docker-seafile-client](https://gitlab.com/florian.anceau-oss/docker-seafile-client). The Docker image can still be found at [flowgunso/seafile-client](https://hub.docker.com/r/flowgunso/seafile-client) but it will be deprecated, the image [flrnnc/seafile-client](https://hub.docker.com/r/flrnnc/seafile-client) should be used instead.
|
||||||
|
|
||||||
# Quick informations
|
# Quick informations
|
||||||
|
|
||||||
_Docker Seafile client_ is a Docker image that provides a Seafile client to sync one or more library as volumes to other containers.
|
_Docker Seafile client_ is a Docker image that provides a Seafile client to sync one or more library as volumes to other containers.
|
||||||
|
|||||||
15
documentations/docker-olm.md.j2
Normal file
15
documentations/docker-olm.md.j2
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{% include "parts/notice.md.j2" %}
|
||||||
|
|
||||||
|
{% include "parts/badges.md.j2" %}
|
||||||
|
|
||||||
|
**Share one or more Seafile libraries as a volume to other containers.**
|
||||||
|
|
||||||
|
{% include "parts/supported_tags.md.j2" %}
|
||||||
|
|
||||||
|
{% include "parts/features.md.j2" %}
|
||||||
|
|
||||||
|
{% include "parts/usage.md.j2" %}
|
||||||
|
|
||||||
|
{% include "parts/troubleshooting.md.j2" %}
|
||||||
|
|
||||||
|
{% include "parts/moving-to-another-namespace.md.j2" %}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{% include "parts/badges.md.j2" %}
|
{% include "parts/badges.md.j2" %}
|
||||||
|
|
||||||
**Share a Seafile library as a volume to other containers.**
|
**Share one or more Seafile libraries as a volume to other containers.**
|
||||||
|
|
||||||
{% include "parts/supported_tags.md.j2" %}
|
{% include "parts/supported_tags.md.j2" %}
|
||||||
|
|
||||||
|
|||||||
5
documentations/parts/moving-to-another-namespace.md.j2
Normal file
5
documentations/parts/moving-to-another-namespace.md.j2
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Moving to another namespace
|
||||||
|
|
||||||
|
This repository is being moved to a new namespace [flrnnc](https://hub.docker.com/u/flrnnc).
|
||||||
|
|
||||||
|
I am applying to open source software programs on the service providers I rely on such as Gitlab and Docker. It means that my project must be reorganized. The `flrnnc` namespace is dedidacted to open source software I publish on Docker.
|
||||||
2
documentations/parts/notices.md.j2
Normal file
2
documentations/parts/notices.md.j2
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
> This repository will be moved to another namespace [flrnnc/seafile-client](https://hub.docker.com/repository/docker/flrnnc/seafile-client/) instead.
|
||||||
|
> See [moving to another namespace][#moving-to-another-namespace] for explanations.
|
||||||
@@ -11,8 +11,14 @@ Example usage with docker-compose and for the docker cli are provided. Essential
|
|||||||
Feedback is welcome so I can keep improving it.
|
Feedback is welcome so I can keep improving it.
|
||||||
|
|
||||||
# Quick informations
|
# Quick informations
|
||||||
**[flowgunso/seafile-client](https://hub.docker.com/r/flowgunso/seafile-client)** on Docker Hub, latest stable version: **{{version}}**
|
{% include "parts/badges.md.j2" %}
|
||||||
Contribute and report issues on [Gitlab](https://gitlab.com/florian.anceau/docker-seafile-client/).
|
|
||||||
|
[u]Please use [flrnnc/seafile-client](https://hub.docker.com/r/flrnnc/seafile-client) from now on instead of [flowgunso/seafile-client](https://hub.docker.com/r/flowgunso/seafile-client)[/u].
|
||||||
|
|
||||||
|
The client is being moved to new namespaces which are sponsored as open source software. Both the source code and the image has been moved to those namespaces.
|
||||||
|
|
||||||
|
[flowgunso/seafile-client](https://hub.docker.com/r/flowgunso/seafile-client) will still be updated until usage is low enough.
|
||||||
|
|
||||||
|
|
||||||
{% include "parts/supported_tags.md.j2" %}
|
{% include "parts/supported_tags.md.j2" %}
|
||||||
|
|
||||||
@@ -20,9 +26,4 @@ Contribute and report issues on [Gitlab](https://gitlab.com/florian.anceau/docke
|
|||||||
|
|
||||||
{% include "parts/usage.md.j2" %}
|
{% include "parts/usage.md.j2" %}
|
||||||
|
|
||||||
{% include "parts/troubleshooting.md.j2" %}
|
{% include "parts/troubleshooting.md.j2" %}
|
||||||
|
|
||||||
# Changelog
|
|
||||||
[details]
|
|
||||||
{{changelog}}
|
|
||||||
[/details]
|
|
||||||
@@ -30,5 +30,12 @@ done
|
|||||||
|
|
||||||
docker build \
|
docker build \
|
||||||
$build_arguments \
|
$build_arguments \
|
||||||
--tag seafile-client:$TARGET \
|
--build-arg IMAGE=flowgunso \
|
||||||
|
--tag seafile-client:$TARGET-flowgunso \
|
||||||
|
seafile-client/
|
||||||
|
|
||||||
|
docker build \
|
||||||
|
$build_arguments \
|
||||||
|
--build-arg IMAGE=flrnnc \
|
||||||
|
--tag seafile-client:$TARGET-flrnnc \
|
||||||
seafile-client/
|
seafile-client/
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
token=$(curl -s \
|
token=$(curl -s \
|
||||||
-X POST \
|
-X POST \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"username": "'"$DOCKER_HUB_OWNER_USERNAME"'", "password": "'"$DOCKER_HUB_OWNER_TOKEN"'"}' \
|
-d '{"username": "'"$DOCKER_REGISTRY_USERNAME"'", "password": "'"$DOCKER_REGISTRY_TOKEN"'"}' \
|
||||||
https://hub.docker.com/v2/users/login/ | jq -r .token)
|
https://hub.docker.com/v2/users/login/ | jq -r .token)
|
||||||
|
|
||||||
# Generate a JSON with the README.md as the full_description.
|
# Generate a JSON with the README.md as the full_description.
|
||||||
json=$(jq -n \
|
json=$(jq -n \
|
||||||
--arg readme "$(<documentations/docker.md)" \
|
--arg readme "$(<documentations/docker.md)" \
|
||||||
'{"full_description": $readme,"description":"Synchronize a Seafile library. Support password protected librairies and 2FA authentication."}')
|
'{"full_description": $readme,"description":"Synchronize one or more Seafile library. Support password protected librairies and 2FA authentication."}')
|
||||||
|
|
||||||
# Update the Docker Hub repository's full_description.
|
# Update the Docker Hub repository's full_description.
|
||||||
curl -siL \
|
curl -siL \
|
||||||
@@ -16,4 +16,11 @@ curl -siL \
|
|||||||
-d "$json" \
|
-d "$json" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-H "Authorization: JWT $token" \
|
-H "Authorization: JWT $token" \
|
||||||
"https://hub.docker.com/v2/repositories/$DOCKER_HUB_IMAGE/"
|
"https://hub.docker.com/v2/repositories/$DOCKER_HUB_IMAGE_FLOWGUNSO/"
|
||||||
|
|
||||||
|
curl -siL \
|
||||||
|
-X PATCH \
|
||||||
|
-d "$json" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: JWT $token" \
|
||||||
|
"https://hub.docker.com/v2/repositories/$DOCKER_HUB_IMAGE_FLRNNC/"
|
||||||
@@ -49,8 +49,13 @@ for version_component in $(echo $version | tr '.' '\n'); do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Tag then push to the Docker Hub registry.
|
# Tag then push to the Docker Hub registry.
|
||||||
echo $DOCKER_HUB_BOT_TOKEN | docker login --password-stdin --username $DOCKER_HUB_BOT_USERNAME
|
echo $DOCKER_REGISTRY_TOKEN | docker login --password-stdin --username $DOCKER_REGISTRY_USERNAME
|
||||||
for tag in "${tags[@]}"; do
|
for tag in "${tags[@]}"; do
|
||||||
docker tag seafile-client:$TARGET $DOCKER_HUB_IMAGE:$tag
|
docker tag seafile-client:$TARGET $DOCKER_REGISTRY_IMAGE_FLOWGUNSO:$tag
|
||||||
docker push $DOCKER_HUB_IMAGE:$tag
|
docker push $DOCKER_REGISTRY_IMAGE_FLOWGUNSO:$tag
|
||||||
|
done
|
||||||
|
|
||||||
|
for tag in "${tags[@]}"; do
|
||||||
|
docker tag seafile-client:$TARGET-flrnnc $DOCKER_REGISTRY_IMAGE_FLRNNC:$tag
|
||||||
|
docker push $DOCKER_REGISTRY_IMAGE_FLRNNC:$tag
|
||||||
done
|
done
|
||||||
@@ -3,9 +3,11 @@ FROM debian:${TARGET}-slim
|
|||||||
|
|
||||||
ARG UID
|
ARG UID
|
||||||
ARG GID
|
ARG GID
|
||||||
|
ARG IMAGE
|
||||||
ENV UID 1000
|
ENV UID 1000
|
||||||
ENV GID 1000
|
ENV GID 1000
|
||||||
ENV PYTHONUNBUFFERED 1
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
ENV IMAGE ${IMAGE}
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install \
|
apt-get install \
|
||||||
@@ -41,9 +43,9 @@ ARG REVISION
|
|||||||
ARG VERSION
|
ARG VERSION
|
||||||
LABEL org.opencontainers.image.created=${CREATED}
|
LABEL org.opencontainers.image.created=${CREATED}
|
||||||
LABEL org.opencontainers.image.authors="flow.gunso@gmail.com"
|
LABEL org.opencontainers.image.authors="flow.gunso@gmail.com"
|
||||||
LABEL org.opencontainers.image.url="https://hub.docker.com/r/flowgunso/seafile-client"
|
LABEL org.opencontainers.image.url="https://hub.docker.com/r/flrnnc/seafile-client"
|
||||||
LABEL org.opencontainers.image.documentation="https://gitlab.com/florian.anceau/docker-seafile-client"
|
LABEL org.opencontainers.image.documentation="https://gitlab.com/florian.anceau-oss/docker-seafile-client"
|
||||||
LABEL org.opencontainers.image.source="https://gitlab.com/florian.anceau/docker-seafile-client"
|
LABEL org.opencontainers.image.source="https://gitlab.com/florian.anceau-oss/docker-seafile-client"
|
||||||
LABEL org.opencontainers.image.version=${VERSION}
|
LABEL org.opencontainers.image.version=${VERSION}
|
||||||
LABEL org.opencontainers.image.revision=${REVISION}
|
LABEL org.opencontainers.image.revision=${REVISION}
|
||||||
LABEL org.opencontainers.image.licenses="GPL-3.0"
|
LABEL org.opencontainers.image.licenses="GPL-3.0"
|
||||||
|
|||||||
@@ -23,7 +23,20 @@ set -e
|
|||||||
groupmod -g $GID seafile &> /dev/null
|
groupmod -g $GID seafile &> /dev/null
|
||||||
usermod -u $UID -g $GID seafile &> /dev/null
|
usermod -u $UID -g $GID seafile &> /dev/null
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$IMAGE" == "flowgunso" ]; then
|
||||||
|
echo
|
||||||
|
echo -e "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
|
||||||
|
echo -e "┃ \e[1mPlease use \e[4mflrnnc/seafile-client\e[24m instead of \e[4mflowgunso/seafile-client\e[24m which will be deprecated...\e[0m ┃"
|
||||||
|
echo -e "┃ See the information notices at: ┃"
|
||||||
|
echo -e "┃ \thttps://forum.seafile.com/t/docker-client-to-sync-files-with-containers/8573 ┃"
|
||||||
|
echo -e "┃ \thttps://gitlab.com/florian.anceau-oss/docker-seafile-client ┃"
|
||||||
|
echo -e "┃ \thttps://hub.docker.com/r/flowgunso/seafile-client ┃"
|
||||||
|
echo -e "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
sudo \
|
sudo \
|
||||||
-HE \
|
-HE \
|
||||||
-u seafile \
|
-u seafile \
|
||||||
-- "$@"
|
-- "$@"
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
ARG TARGET=unstable
|
ARG TARGET=unstable
|
||||||
FROM seafile-client:${TARGET}
|
FROM seafile-client:${TARGET}-flrnnc
|
||||||
|
|
||||||
COPY --chmod=755 test_binaries.sh /test.sh
|
COPY --chmod=755 test_binaries.sh /test.sh
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ services:
|
|||||||
- memcached
|
- memcached
|
||||||
|
|
||||||
client:
|
client:
|
||||||
image: seafile-client:unstable
|
image: seafile-client:oldstable-flowgunso
|
||||||
volumes:
|
volumes:
|
||||||
#- library:/library
|
#- library:/library
|
||||||
- data:/seafile
|
- data:/seafile
|
||||||
@@ -40,7 +40,7 @@ services:
|
|||||||
SEAF_SERVER_URL: "http://seafile"
|
SEAF_SERVER_URL: "http://seafile"
|
||||||
SEAF_USERNAME: "seafile@localhost"
|
SEAF_USERNAME: "seafile@localhost"
|
||||||
SEAF_PASSWORD: "password"
|
SEAF_PASSWORD: "password"
|
||||||
SEAF_LIBRARY_UUID: "1b7d4e92-6753-4c4a-85b0-42566eab42c8"
|
SEAF_LIBRARY: "1b7d4e92-6753-4c4a-85b0-42566eab42c8"
|
||||||
DEBUG: 1
|
DEBUG: 1
|
||||||
UID: 1000
|
UID: 1000
|
||||||
GID: 100
|
GID: 100
|
||||||
|
|||||||
Reference in New Issue
Block a user