mirror of
https://git.asonix.dog/asonix/pict-rs
synced 2024-12-22 11:21:24 +00:00
Adding docker and docker-compose.
This commit is contained in:
parent
35aca6a426
commit
a7bc7c0121
5 changed files with 58 additions and 2 deletions
3
.dockerignore
Normal file
3
.dockerignore
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
target
|
||||||
|
.git
|
||||||
|
docker/volumes
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
/target
|
/target
|
||||||
/data
|
/data
|
||||||
|
/docker/volumes
|
||||||
|
|
30
docker/Dockerfile
Normal file
30
docker/Dockerfile
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Build
|
||||||
|
FROM ekidd/rust-musl-builder:1.42.0-openssl11 as rust
|
||||||
|
|
||||||
|
# Cache deps
|
||||||
|
WORKDIR /app
|
||||||
|
RUN sudo chown -R rust:rust .
|
||||||
|
RUN USER=root cargo new server
|
||||||
|
WORKDIR /app/server
|
||||||
|
COPY Cargo.toml Cargo.lock ./
|
||||||
|
RUN sudo chown -R rust:rust .
|
||||||
|
RUN mkdir -p ./src/bin \
|
||||||
|
&& echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs
|
||||||
|
RUN cargo build --release
|
||||||
|
RUN rm -f ./target/x86_64-unknown-linux-musl/release/deps/pict_rs*
|
||||||
|
COPY src ./src/
|
||||||
|
|
||||||
|
# Build for release
|
||||||
|
RUN cargo build --frozen --release
|
||||||
|
|
||||||
|
FROM alpine:3.10
|
||||||
|
|
||||||
|
# Copy resources
|
||||||
|
COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/release/pict-rs /app/pict-rs
|
||||||
|
|
||||||
|
RUN addgroup -g 1000 pictrs
|
||||||
|
RUN adduser -D -s /bin/sh -u 1000 -G pictrs pictrs
|
||||||
|
RUN chown pictrs:pictrs /app/pict-rs
|
||||||
|
USER pictrs
|
||||||
|
EXPOSE 8080
|
||||||
|
CMD ["/app/pict-rs"]
|
15
docker/docker-compose.yml
Normal file
15
docker/docker-compose.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
version: '3.3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
pictrs:
|
||||||
|
build:
|
||||||
|
context: ../
|
||||||
|
dockerfile: docker/Dockerfile
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- PICTRS_PATH=/app/data
|
||||||
|
volumes:
|
||||||
|
- ./volumes/pictrs:/app/data
|
|
@ -5,16 +5,23 @@ pub(crate) struct Config {
|
||||||
#[structopt(
|
#[structopt(
|
||||||
short,
|
short,
|
||||||
long,
|
long,
|
||||||
help = "The address and port the server binds to, e.g. 127.0.0.1:80"
|
env = "PICTRS_ADDR",
|
||||||
|
default_value = "0.0.0.0:8080",
|
||||||
|
help = "The address and port the server binds to. Default: 0.0.0.0:8080"
|
||||||
)]
|
)]
|
||||||
addr: SocketAddr,
|
addr: SocketAddr,
|
||||||
|
|
||||||
#[structopt(short, long, help = "The path to the data directory, e.g. data/")]
|
#[structopt(
|
||||||
|
short,
|
||||||
|
long,
|
||||||
|
env = "PICTRS_PATH",
|
||||||
|
help = "The path to the data directory, e.g. data/")]
|
||||||
path: PathBuf,
|
path: PathBuf,
|
||||||
|
|
||||||
#[structopt(
|
#[structopt(
|
||||||
short,
|
short,
|
||||||
long,
|
long,
|
||||||
|
env = "PICTRS_FORMAT",
|
||||||
help = "An image format to convert all uploaded files into, supports 'jpg' and 'png'"
|
help = "An image format to convert all uploaded files into, supports 'jpg' and 'png'"
|
||||||
)]
|
)]
|
||||||
format: Option<Format>,
|
format: Option<Format>,
|
||||||
|
|
Loading…
Reference in a new issue