Skip to content

Commit

Permalink
Set-up Docker and GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
Dadoum committed Jun 16, 2023
1 parent bd870f2 commit 85eff4f
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 11 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: ["Dadoum"]
27 changes: 27 additions & 0 deletions .github/workflows/docker-publish-anisette-v3-server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Publish docker image anisette-v3-server

on:
push:
branches:
- 'main'

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
tags: |
dadoum/anisette-v3-server:latest
platforms: linux/386,linux/amd64,linux/arm/v7,linux/arm64/v8
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Base for builder
FROM debian:unstable-slim AS builder
# Deps for builder
RUN apt-get update && apt-get install --no-install-recommends -y ca-certificates ldc git clang dub libz-dev libssl-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Build for builder
WORKDIR /opt/
COPY . .
RUN DC=ldc2 dub build -c "static" --build-mode allAtOnce -b release --compiler=ldc2

# Base for run
FROM debian:unstable-slim
RUN apt-get update && apt-get install --no-install-recommends -y ca-certificates curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Copy build artefacts to run
WORKDIR /opt/
COPY --from=builder /opt/anisette-v3-server /opt/anisette-v3-server

# Setup rootless user which works with the volume mount
RUN useradd -ms /bin/bash Alcoholic \
&& mkdir /home/Alcoholic/.config/anisette-v3/lib/ -p \
&& chown -R Alcoholic /home/Alcoholic/ \
&& chmod -R +wx /home/Alcoholic/ \
&& chown -R Alcoholic /opt/ \
&& chmod -R +wx /opt/

# Run the artefact
USER Alcoholic
EXPOSE 6969
ENTRYPOINT [ "/opt/anisette-v3-server" ]
22 changes: 21 additions & 1 deletion dub.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,25 @@
},
"slf4d": "~>2.1.1",
"vibe-d": "~>0.9.7-alpha.2"
}
},

"configurations": [
{
"name": "default",
"targetType": "executable"
},
{
"name": "static",
"targetType": "executable",
"lflags-linux-ldc": [
"-lz"
],
"dflags-ldc": [
"--link-defaultlib-shared=false"
],
"dflags-gdc": [
"-defaultlib=:libgphobos.a"
]
}
]
}
12 changes: 2 additions & 10 deletions dub.selections.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@
"diet-ng": "1.8.1",
"dxml": "0.4.3",
"eventcore": "0.9.25",
"hunt": "1.7.17",
"hunt-extra": "1.2.3",
"hunt-http": "0.8.2",
"hunt-net": "0.7.1",
"hunt-openssl": "1.0.5",
"libasync": "0.9.2",
"lighttp": "0.5.4",
"libasync": "0.8.6",
"memutils": "1.0.9",
"mir-linux-kernel": "1.0.1",
"openssl": "3.3.0",
Expand All @@ -21,9 +15,7 @@
"slf4d": "2.1.1",
"stdx-allocator": "2.77.5",
"taggedalgebraic": "0.11.22",
"urld": "2.1.1",
"vibe-core": "2.2.0",
"vibe-d": "0.9.7-alpha.2",
"xbuffer": "1.0.0"
"vibe-d": "0.9.7-alpha.2"
}
}

0 comments on commit 85eff4f

Please sign in to comment.