diff --git a/CHANGELOG.md b/CHANGELOG.md index e194158..fb94690 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.7.19] 2021-10-11 +### Changed +* DOCKER: use alpine as base image + ### Fixed * CHECK: update stations with new languagecodes * DB: check for empty lists in streaming servers api diff --git a/Cargo.toml b/Cargo.toml index 42cdf97..32c9081 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ description = "Radio-Browser Server with REST API" license = "agpl-3.0" name = "radiobrowser-api-rust" readme = "README.md" -version = "0.7.18" +version = "0.7.19" edition = "2018" [dependencies] diff --git a/Dockerfile b/Dockerfile index 866e173..aad92be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,21 @@ -FROM rust:1 -ADD . /root -WORKDIR /root +FROM alpine:3.14 +ADD . /app +WORKDIR /app +RUN apk update +RUN apk add rust cargo openssl-dev RUN cargo build --release -FROM ubuntu:bionic +FROM alpine:3.14 EXPOSE 8080 -RUN groupadd -r radiobrowser && \ - useradd --no-log-init -r -g radiobrowser radiobrowser && \ - apt-get update && \ - apt-get install -y libssl1.1 ca-certificates && \ - rm -rf /var/lib/apt/lists/* && \ - mkdir -p /usr/lib/radiobrowser/static/ && \ +COPY --from=0 /app/target/release/radiobrowser-api-rust /usr/bin/ +COPY --from=0 /app/static/ /usr/lib/radiobrowser/static/ +COPY --from=0 /app/etc/config-example.toml /etc/radiobrowser.toml +RUN addgroup -S radiobrowser && \ + adduser -S -G radiobrowser radiobrowser && \ + apk add libgcc && \ mkdir -p /var/log/radiobrowser/ && \ - chown -R radiobrowser:radiobrowser /var/log/radiobrowser/ -COPY --from=0 /root/target/release/radiobrowser-api-rust /usr/bin/ -COPY --from=0 /root/static/ /usr/lib/radiobrowser/static/ -COPY --from=0 /root/etc/config-example.toml /etc/radiobrowser.toml + chown -R radiobrowser:radiobrowser /var/log/radiobrowser/ && \ + chmod go+r /etc/radiobrowser.toml ENV STATIC_FILES_DIR=/usr/lib/radiobrowser/static/ USER radiobrowser:radiobrowser -CMD [ "radiobrowser-api-rust", "-f", "/etc/radiobrowser.toml"] +CMD [ "radiobrowser-api-rust", "-f", "/etc/radiobrowser.toml", "-vvv"] diff --git a/README.md b/README.md index 6a9a638..dce97da 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ docker stack deploy -c docker-compose-traefik.yml rb # download distribution mkdir -p radiobrowser cd radiobrowser -wget https://github.com/segler-alex/radiobrowser-api-rust/releases/download/0.7.18/radiobrowser-dist.tar.gz +wget https://github.com/segler-alex/radiobrowser-api-rust/releases/download/0.7.19/radiobrowser-dist.tar.gz tar -zxf radiobrowser-dist.tar.gz # config database @@ -115,7 +115,7 @@ sudo systemctl start radiobrowser * create database and database user ```bash -wget https://github.com/segler-alex/radiobrowser-api-rust/releases/download/0.7.18/radiobrowser-api-rust_0.7.18_amd64.deb +wget https://github.com/segler-alex/radiobrowser-api-rust/releases/download/0.7.19/radiobrowser-api-rust_0.7.19_amd64.deb sudo apt install default-mysql-server sudo dpkg -i radiobrowser-api-rust_0.7.1_amd64.deb cat /usr/share/radiobrowser/init.sql | mysql @@ -177,7 +177,7 @@ docker run \ -p 3306:3306 \ mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # start radiobrowser container -docker pull segleralex/radiobrowser-api-rust:0.7.18 +docker pull segleralex/radiobrowser-api-rust:0.7.19 docker run \ --name radiobrowserapi \ --detach \ @@ -186,7 +186,7 @@ docker run \ -e DATABASE_URL=mysql://radiouser:password@dbserver/radio \ -e HOST=0.0.0.0 \ -p 8080:8080 \ - segleralex/radiobrowser-api-rust:0.7.18 radiobrowser-api-rust -vvv + segleralex/radiobrowser-api-rust:0.7.19 radiobrowser-api-rust -vvv # show logs docker logs -f radiobrowserapi # access api with the following link @@ -250,7 +250,7 @@ cd radiobrowser-api-rust # checkout stable git checkout stable # deploy, change email adress, for ssl with certbot -ansible-playbook -e "email=test@example.com" -e "version=0.7.18" -e "ansible_python_interpreter=auto" -i "test.example.com,test2.example.com" ansible/playbook.yml +ansible-playbook -e "email=test@example.com" -e "version=0.7.19" -e "ansible_python_interpreter=auto" -i "test.example.com,test2.example.com" ansible/playbook.yml ``` ## Building @@ -299,7 +299,7 @@ mysql -D radio -u radiouser -ppassword A print of the help page of the main executable. You can see parameters here. Many of them may also be set by environment variable (env: ..). ``` $ radiobrowser-api-rust --help -radiobrowser-api-rust 0.7.18 +radiobrowser-api-rust 0.7.19 segler_alex@web.de HTTP Rest API for radiobrowser diff --git a/docker-compose-traefik.yml b/docker-compose-traefik.yml index a7b341f..7906638 100644 --- a/docker-compose-traefik.yml +++ b/docker-compose-traefik.yml @@ -2,7 +2,7 @@ version: "3.2" services: api: build: ./ - image: segleralex/radiobrowser-api-rust:0.7.18 + image: segleralex/radiobrowser-api-rust:0.7.19 deploy: replicas: 1 labels: diff --git a/docker-compose.yml b/docker-compose.yml index d002d05..75b6b41 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.0" services: api: build: ./ - image: segleralex/radiobrowser-api-rust:0.7.18 + image: segleralex/radiobrowser-api-rust:0.7.19 deploy: replicas: 1 networks: