mirror of
https://github.com/offen/docker-volume-backup.git
synced 2025-12-05 17:18:02 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a01fc3df3f | ||
|
|
37f9bd9a8f | ||
|
|
fb4663b087 | ||
|
|
0fe983dfcc | ||
|
|
5c8bc107de |
3
.github/workflows/deploy-docs.yml
vendored
3
.github/workflows/deploy-docs.yml
vendored
@@ -3,6 +3,9 @@ name: Deploy Documenation site to GitHub Pages
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ['main']
|
branches: ['main']
|
||||||
|
paths:
|
||||||
|
- 'docs/**'
|
||||||
|
- '.github/workflows/deploy-docs.yml'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
|
|||||||
39
.github/workflows/release.yml
vendored
39
.github/workflows/release.yml
vendored
@@ -15,6 +15,38 @@ jobs:
|
|||||||
- name: Check out the repo
|
- name: Check out the repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: set Environment Variables
|
||||||
|
id: env
|
||||||
|
run: |
|
||||||
|
echo "NOW=$(date +'%F %Z %T')" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
# list of Docker images to use as base name for tags
|
||||||
|
images: |
|
||||||
|
offen/docker-volume-backup
|
||||||
|
ghcr.io/offen/docker-volume-backup
|
||||||
|
# define global behaviour for tags
|
||||||
|
flavor: |
|
||||||
|
latest=false
|
||||||
|
# specify one tag which never gets set, to prevent the tag-attribute being empty, as it will fallback to a default
|
||||||
|
tags: |
|
||||||
|
# output v2.42.1-alpha.1 (incl. pre-releases)
|
||||||
|
type=semver,pattern=v{{version}},enable=false
|
||||||
|
labels: |
|
||||||
|
org.opencontainers.image.title=${{github.event.repository.name}}
|
||||||
|
org.opencontainers.image.description="Backup Docker volumes locally or to any S3, WebDAV, Azure Blob Storage, Dropbox or SSH compatible storage"
|
||||||
|
org.opencontainers.image.vendor=${{github.repository_owner}}
|
||||||
|
org.opencontainers.image.licenses="MPL-2.0"
|
||||||
|
org.opencontainers.image.version=${{github.ref_name}}
|
||||||
|
org.opencontainers.image.created=${{ env.NOW }}
|
||||||
|
org.opencontainers.image.source=${{github.server_url}}/${{github.repository}}
|
||||||
|
org.opencontainers.image.revision=${{github.sha}}
|
||||||
|
org.opencontainers.image.url="https://offen.github.io/docker-volume-backup/"
|
||||||
|
org.opencontainers.image.documentation="https://offen.github.io/docker-volume-backup/"
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
@@ -35,7 +67,7 @@ jobs:
|
|||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Extract Docker tags
|
- name: Extract Docker tags
|
||||||
id: meta
|
id: tags
|
||||||
run: |
|
run: |
|
||||||
version_tag="${{github.ref_name}}"
|
version_tag="${{github.ref_name}}"
|
||||||
tags=($version_tag)
|
tags=($version_tag)
|
||||||
@@ -51,9 +83,10 @@ jobs:
|
|||||||
echo "releases=$releases" >> "$GITHUB_OUTPUT"
|
echo "releases=$releases" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Build and push Docker images
|
- name: Build and push Docker images
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||||
tags: ${{ steps.meta.outputs.releases }}
|
tags: ${{ steps.tags.outputs.releases }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
|||||||
@@ -69,7 +69,11 @@ func loadEnvFiles(directory string) ([]configFile, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
p := filepath.Join(directory, item.Name())
|
p := filepath.Join(directory, item.Name())
|
||||||
envFile, err := godotenv.Read(p)
|
f, err := os.ReadFile(p)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("loadEnvFiles: error reading %s: %w", item.Name(), err)
|
||||||
|
}
|
||||||
|
envFile, err := godotenv.Unmarshal(os.ExpandEnv(string(f)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("loadEnvFiles: error reading config file %s: %w", p, err)
|
return nil, fmt.Errorf("loadEnvFiles: error reading config file %s: %w", p, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,7 +89,6 @@ func newScript(c *Config, envVars map[string]string) (*script, func() error, err
|
|||||||
} else {
|
} else {
|
||||||
_ = os.Setenv(currentKey, currentVal)
|
_ = os.Setenv(currentKey, currentVal)
|
||||||
}
|
}
|
||||||
s.logger.Info(fmt.Sprintf("unset %v: %v", currentKey, currentVal))
|
|
||||||
}(key, currentVal, currentOk)
|
}(key, currentVal, currentOk)
|
||||||
|
|
||||||
if err := os.Setenv(key, value); err != nil {
|
if err := os.Setenv(key, value); err != nil {
|
||||||
@@ -99,7 +98,6 @@ func newScript(c *Config, envVars map[string]string) (*script, func() error, err
|
|||||||
err,
|
err,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
s.logger.Info(fmt.Sprintf("set %v: %v", key, value))
|
|
||||||
}
|
}
|
||||||
s.registerHook(hookLevelPlumbing, func(error) error {
|
s.registerHook(hookLevelPlumbing, func(error) error {
|
||||||
s.stats.EndTime = time.Now()
|
s.stats.EndTime = time.Now()
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
NAME="conf"
|
NAME="$EXPANSION_VALUE"
|
||||||
BACKUP_CRON_EXPRESSION="*/1 * * * *"
|
BACKUP_CRON_EXPRESSION="*/1 * * * *"
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
BACKUP_FILENAME: $$NAME.tar.gz
|
BACKUP_FILENAME: $$NAME.tar.gz
|
||||||
BACKUP_FILENAME_EXPAND: 'true'
|
BACKUP_FILENAME_EXPAND: 'true'
|
||||||
|
EXPANSION_VALUE: conf
|
||||||
volumes:
|
volumes:
|
||||||
- ${LOCAL_DIR:-./local}:/archive
|
- ${LOCAL_DIR:-./local}:/archive
|
||||||
- app_data:/backup/app_data:ro
|
- app_data:/backup/app_data:ro
|
||||||
|
|||||||
Reference in New Issue
Block a user