Skip to content

Commit

Permalink
added labels to dockerfile; updated docs examples (#4)
Browse files Browse the repository at this point in the history
* added labels to dockerfile; updated docs examples
* Adding test to test.yml github action
---------

Co-authored-by: Adnan al Jawabra
  • Loading branch information
ToshY authored Oct 25, 2024
1 parent 14b6fd5 commit b6581ca
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 19 deletions.
31 changes: 28 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
run: |
# Create a dummy ofelia config file for testing
echo '[job-exec "example"]' > ofelia.ini
echo 'schedule = "@every 10s"' >> ofelia.ini
echo 'schedule = "@every 2s"' >> ofelia.ini
echo 'command = "/bin/echo Hello Ofelia"' >> ofelia.ini
# Run the container in detached mode
Expand All @@ -41,8 +41,8 @@ jobs:
-v $PWD/ofelia.ini:/config/ofelia.ini \
-d ${{ env.DOCKER_IMAGE_TAG }} daemon --config=/config/ofelia.ini
# Wait for 10 seconds
sleep 10
# Wait for 3 seconds
sleep 3
# Check logs for "Hello Ofelia"
if docker logs cronned-rclone | grep -q "Hello Ofelia"; then
Expand All @@ -53,3 +53,28 @@ jobs:
exit 1 # Fail the job
fi
- name: Test Ofelia (with labels)
run: |
# Run the container in detached mode
docker run --name cronned-rclone-with-labels \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${PWD}/rclone/rclone.conf:/config/rclone/rclone.conf \
-v ${PWD}/rclone/logs:/logs \
-v ${PWD}/rclone/data:/data \
-v ${PWD}/test.txt:/tmp/test.txt \
--label ofelia.enabled=true \
--label ofelia.job-local.example.schedule="@every 2s" \
--label ofelia.job-local.example.command="/bin/echo 'Hello Ofelia'" \
-d ${{ env.DOCKER_IMAGE_TAG }} daemon --docker
# Wait for 3 seconds
sleep 3
# Check logs for "Hello Ofelia"
if docker logs cronned-rclone | grep -q "Hello Ofelia"; then
echo "Output found: Hello Ofelia"
else
echo "Expected output not found"
docker logs cronned-rclone # Print logs for debugging
exit 1 # Fail the job
fi
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ FROM alpine:latest

LABEL maintainer="github.com/adnanjaw"

# this label is required to identify container with ofelia running
LABEL ofelia.service=true
LABEL ofelia.enabled=true

COPY --from=ofelia /usr/bin/ofelia /usr/local/bin/ofelia

COPY --from=rclone /usr/local/bin/rclone /usr/local/bin/rclone
Expand Down
59 changes: 43 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,42 +73,69 @@ slack-only-on-error = true

### 2. Run the Container

After preparing your configuration file, run the `cronned-rclone` Docker container. Ensure your config file is
accessible at the root of your project (e.g., `/project`).
After preparing your configuration file, run the `cronned-rclone` Docker container.

```bash
docker run --name cronned-rclone \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /path/to/ofelia/config.ini:/config/ofelia.ini \
-v /path/to/your/rclone/config:/config/rclone \
-v /path/to/your/rclone/logs:/logs \
-v /path/to/your/rclone/data:/data \
adnanjaw/cronned-rclone:latest
daemon --config=/config/ofelia.ini
-v ${PWD}/ofelia/config.ini:/config/ofelia.ini \
-v ${PWD}/rclone/rclone.conf:/config/rclone/rclone.conf \
-v ${PWD}/rclone/logs:/logs \
-v ${PWD}/rclone/data:/data \
adnanjaw/cronned-rclone:latest daemon --config=/config/ofelia.ini
```

#### Labels

In case you are using Ofelia labels, you can add this command at the end of your Docker run or Docker Compose command.

```bash
daemon --docker
docker run --name cronned-rclone \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${PWD}/rclone/rclone.conf:/config/rclone/rclone.conf \
-v ${PWD}/rclone/logs:/logs \
-v ${PWD}/rclone/data:/data \
-v ${PWD}/test.txt:/tmp/test.txt \
--label ofelia.enabled=true \
--label ofelia.job-local.upload-file.schedule="@every 60s" \
--label ofelia.job-local.upload-file.command="rclone copy /tmp/test.txt s3:/bucket/directory" \
adnanjaw/cronned-rclone:latest daemon --docker
```

#### Run with Docker Compose

To run the container using Docker Compose, create a `docker-compose.yml` file:
To run the container using Docker Compose, create a `compose.yaml` file:

```yaml
services:
cronned-rclone:
image: 'adnanjaw/cronned-rclone:latest'
image: adnanjaw/cronned-rclone:latest
command: daemon --config=/config/ofelia.ini
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /path/to/ofelia/config.ini:/config/ofelia.ini
- /path/to/your/rclone/data:/data
- /path/to/your/rclone/logs:/logs
- /path/to/your/rclone/config:/config/rclone
container_name: cronned-rclone
- ./ofelia/config.ini:/config/ofelia.ini
- ./rclone/data:/data
- ./rclone/logs:/logs
- ./rclone/config:/config/rclone
```
#### Labels
```yaml
services:
cronned-rclone:
image: adnanjaw/cronned-rclone:latest
command: daemon --docker
labels:
ofelia.enabled: true
ofelia.job-local.upload-file.schedule: "@every 60s"
ofelia.job-local.upload-file.command: "rclone copy /tmp/test.txt s3:/bucket/directory"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./rclone/data:/data
- ./rclone/logs:/logs
- ./rclone/config:/config/rclone
- ./test.txt:/tmp/test.txt
```
### 3. Verify Cron Jobs
Expand Down

0 comments on commit b6581ca

Please sign in to comment.