Added Dockerfile & CI deploy
parent
c18cb8aede
commit
4a99bb938c
|
@ -0,0 +1,5 @@
|
||||||
|
*
|
||||||
|
|
||||||
|
!src/
|
||||||
|
!Cargo.toml
|
||||||
|
!Cargo.lock
|
|
@ -1 +1,2 @@
|
||||||
/target
|
/target
|
||||||
|
/data/
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
platform: linux/amd64
|
||||||
|
branch: main
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
release:
|
||||||
|
image: 'plugins/docker'
|
||||||
|
settings:
|
||||||
|
repo: 'chewingbever/site'
|
||||||
|
tag:
|
||||||
|
- 'latest'
|
||||||
|
- "${CI_COMMIT_TAG}"
|
||||||
|
secrets:
|
||||||
|
- 'docker_username'
|
||||||
|
- 'docker_password'
|
||||||
|
event: tag
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
image: 'curlimages/curl'
|
||||||
|
secrets:
|
||||||
|
- 'webhook'
|
||||||
|
commands:
|
||||||
|
- curl -XPOST --fail -s "$WEBHOOK"
|
||||||
|
event: tag
|
|
@ -4,6 +4,10 @@ version = "0.0.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
path = "src/main.rs"
|
||||||
|
name = "site"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
FROM rust:1.59-alpine3.15 AS builder
|
||||||
|
|
||||||
|
ARG DI_VER=1.2.5
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN apk update && apk add --no-cache build-base
|
||||||
|
|
||||||
|
# Build dumb-init
|
||||||
|
RUN wget -O - "https://github.com/Yelp/dumb-init/archive/refs/tags/v${DI_VER}.tar.gz" | tar -xzf - && \
|
||||||
|
cd "dumb-init-${DI_VER}" && \
|
||||||
|
make SHELL=/bin/sh && \
|
||||||
|
mv dumb-init .. && \
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
COPY . ./
|
||||||
|
|
||||||
|
RUN cargo build --release
|
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:3.15
|
||||||
|
|
||||||
|
COPY --from=builder /app/target/release/site /bin/site
|
||||||
|
COPY --from=builder /app/dumb-init /bin/dumb-init
|
||||||
|
|
||||||
|
# Create a non-root user & make sure it can write to the data directory
|
||||||
|
RUN set -x && \
|
||||||
|
adduser -u 82 -D -S -G www-data www-data && \
|
||||||
|
mkdir /data && \
|
||||||
|
chown -R www-data:www-data /data
|
||||||
|
|
||||||
|
ENV DATA_DIR=/data
|
||||||
|
|
||||||
|
WORKDIR /data
|
||||||
|
|
||||||
|
USER www-data:www-data
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/bin/dumb-init", "--" ]
|
||||||
|
CMD [ "/bin/site" ]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue