Skip to content

Commit

Permalink
dev: more container work
Browse files Browse the repository at this point in the history
  • Loading branch information
da2ce7 committed Aug 27, 2023
1 parent acfa8c2 commit 734f9ee
Show file tree
Hide file tree
Showing 24 changed files with 263 additions and 166 deletions.
11 changes: 7 additions & 4 deletions Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ RUN cargo binstall --no-confirm cargo-nextest

COPY ./share/ /app/share/torrust
RUN mkdir -p /app/share/torrust/default/database/; \
touch /app/share/torrust/default/database/tracker.sqlite3.db; \
echo ";" | sqlite3 /app/share/torrust/default/database/tracker.sqlite3.db
sqlite3 /app/share/torrust/default/database/tracker.sqlite3.db "VACUUM;"

COPY ./contrib/dev-tools/su-exec/ /tmp/su-exec/
RUN cc -Wall -Werror -g /tmp/su-exec/su-exec.c -o /tmp/su-exec/su-exec
Expand Down Expand Up @@ -95,12 +94,14 @@ RUN ["/busybox/cp", "-sp", "/busybox/sh","/busybox/cat","/busybox/ls","/busybox/
COPY --from=tester --chmod=0555 /tmp/su-exec/su-exec /bin/su-exec

ARG TORRUST_TRACKER_PATH_CONFIG="/etc/torrust/tracker/config.toml"
ARG TORRUST_TRACKER_DATABASE="sqlite3"
ARG USER_ID=1000
ARG UDP_PORT=6969
ARG HTTP_PORT=7070
ARG API_PORT=1212

ENV TORRUST_TRACKER_PATH_CONFIG=${TORRUST_TRACKER_PATH_CONFIG}
ENV TORRUST_TRACKER_DATABASE=${TORRUST_TRACKER_DATABASE}
ENV USER_ID=${USER_ID}
ENV UDP_PORT=${UDP_PORT}
ENV HTTP_PORT=${HTTP_PORT}
Expand All @@ -118,18 +119,20 @@ COPY --chmod=0555 ./share/container/entry_script_sh /usr/local/bin/entry.sh

VOLUME ["/var/lib/torrust/tracker","/var/log/torrust/tracker","/etc/torrust/tracker"]

ENV RUNTIME="runtime"
ENTRYPOINT ["/usr/local/bin/entry.sh"]


## Torrust-Tracker (debug)
FROM runtime as debug
ENV RUNTIME="debug"
COPY --from=test_debug /app/ /usr/
COPY --chmod=0644 ./share/container/motd.debug /etc/motd
RUN env
CMD ["sh"]

## Torrust-Tracker (release) (default)
FROM runtime as release
ENV RUNTIME="release"
COPY --from=test /app/ /usr/
COPY --chmod=0644 ./share/container/motd.release /etc/motd
# HEALTHCHECK CMD ["/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "localhost:${API_PORT}/version"]
CMD ["/usr/bin/torrust-tracker"]
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ You can follow the [documentation](https://docs.rs/torrust-tracker/) to install
git clone https://github.com/torrust/torrust-tracker.git \
&& cd torrust-tracker \
&& cargo build --release \
&& mkdir -p ./storage/lib/database \
&& mkdir -p ./storage/ssl_certificates
&& mkdir -p ./storage/tracker/lib/database \
&& mkdir -p ./storage/tracker/lib/tls
```

The tracker gets it's default configuration from the [share/default/config](./share/default/config/) folder: either [´tracker.sqlite3.development.toml´](./share/default/config/tracker.sqlite3.development.toml), the [local default](./src/bootstrap/config.rs#L18); or [′tracker.sqlite3.distribution.toml´](./share/default/config/tracker.sqlite3.distribution.toml), the [container default](./share/container/entry_script_s#L10).
The tracker gets it's default configuration from the [share/default/config](./share/default/config/) folder: either [´tracker.development.sqlite3.toml´](./share/default/config/tracker.development.sqlite3.toml), the [local default](./src/bootstrap/config.rs#L18); or [′tracker.container.sqlite3.toml´](./share/default/config/tracker.container.sqlite3.toml), the [container default](./share/container/entry_script_s#L10).

To specify a different configuration file, supply it's path on an environmental variable: [`TORRUST_TRACKER_PATH_CONFIG`](./src/bootstrap/config.rs#L15), or simply supply your entire configuration on the environmental variable itself: [`TORRUST_TRACKER_CONFIG`](./src/bootstrap/config.rs#L11).

Expand Down
3 changes: 2 additions & 1 deletion cSpell.json
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@
],
"enableFiletypes": [
"dockerfile",
"shellscript"
"shellscript",
"toml"
]
}
8 changes: 4 additions & 4 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
image: torrust-tracker:debug
tty: true
environment:
- TORRUST_TRACKER_CONFIG=${TORRUST_TRACKER_CONFIG}
- TORRUST_TRACKER_DATABASE=${TORRUST_TRACKER_DATABASE:-"mysql"}
- TORRUST_TRACKER_API_ADMIN_TOKEN=${TORRUST_TRACKER_API_ADMIN_TOKEN:-MyAccessToken}
networks:
- server_side
Expand All @@ -14,9 +14,9 @@ services:
- 7070:7070
- 1212:1212
volumes:
- ./storage/lib:/var/lib/torrust/tracker
- ./storage/log:/var/log/torrust/tracker
- ./storage/etc:/etc/torrust/tracker
- ./storage/tracker/lib:/var/lib/torrust/tracker
- ./storage/tracker/log:/var/log/torrust/tracker
- ./storage/tracker/etc:/etc/torrust/tracker
depends_on:
- mysql

Expand Down
10 changes: 1 addition & 9 deletions contrib/dev-tools/containers/docker-build.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
#!/bin/bash

CURRENT_USER_NAME=$(whoami)
CURRENT_USER_ID=$(id -u)
echo "User name: $CURRENT_USER_NAME"
echo "User id: $CURRENT_USER_ID"

USER_ID=$CURRENT_USER_ID
export USER_ID

echo "Building docker image ..."

docker build --target debug --tag torrust-tracker:debug .
docker build --target release --tag torrust-tracker:release --file Containerfile
3 changes: 1 addition & 2 deletions contrib/dev-tools/containers/docker-install.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/bin/bash

./docker/bin/build.sh
./bin/install.sh
./contrib/dev-tools/containers/docker-build.sh
11 changes: 0 additions & 11 deletions contrib/dev-tools/containers/docker-run-local-image.sh

This file was deleted.

13 changes: 13 additions & 0 deletions contrib/dev-tools/containers/docker-run-local.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

mkdir -p ./storage/tracker/lib/ ./storage/tracker/log/ ./storage/tracker/etc/

docker run -it \
--env USER_ID"$(id -u)" \
--publish 6969:6969/udp \
--publish 7070:7070/tcp \
--publish 1212:1212/tcp \
--volume ./storage/tracker/lib:/var/lib/torrust/tracker:rw \
--volume ./storage/tracker/log:/var/log/torrust/tracker:rw \
--volume ./storage/tracker/etc:/etc/torrust/tracker:rw \
torrust-tracker:release
13 changes: 0 additions & 13 deletions contrib/dev-tools/containers/docker-run-public-image.sh

This file was deleted.

13 changes: 13 additions & 0 deletions contrib/dev-tools/containers/docker-run-public.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

mkdir -p ./storage/tracker/lib/ ./storage/tracker/log/ ./storage/tracker/etc/

docker run -it \
--env USER_ID"$(id -u)" \
--publish 6969:6969/udp \
--publish 7070:7070/tcp \
--publish 1212:1212/tcp \
--volume ./storage/tracker/lib:/var/lib/torrust/tracker:rw \
--volume ./storage/tracker/log:/var/log/torrust/tracker:rw \
--volume ./storage/tracker/etc:/etc/torrust/tracker:rw \
torrust/tracker:latest
7 changes: 3 additions & 4 deletions contrib/dev-tools/init/install-local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
# This script is only intended to be used for local development or testing environments.

# Generate storage directory if it does not exist
mkdir -p "./storage/lib/database"
mkdir -p ./storage/tracker/lib/database

# Generate the sqlite database if it does not exist
if ! [ -f "./storage/lib/database/sqlite3.db" ]; then
if ! [ -f "./storage/tracker/lib/database/sqlite3.db" ]; then
# todo: it should get the path from tracker.toml and only do it when we use sqlite
touch ./storage/lib/database/sqlite3.db
echo ";" | sqlite3 ./storage/lib/database/sqlite3.db
sqlite3 ./storage/tracker/lib/database/sqlite3.db "VACUUM;"
fi
Loading

0 comments on commit 734f9ee

Please sign in to comment.