mirror of
https://github.com/cryptoadvance/specter-desktop.git
synced 2026-08-13 12:33:29 +02:00
Chore: Docker (#1696)
* Add Docker builds * Add support for push to all branches * Fix some Docker bugs
This commit is contained in:
parent
9dbde39c2d
commit
4646025790
4 changed files with 144 additions and 11 deletions
|
|
@ -1,11 +0,0 @@
|
||||||
.env
|
|
||||||
pyinstaller
|
|
||||||
.git
|
|
||||||
release
|
|
||||||
docs
|
|
||||||
.vscode
|
|
||||||
tests
|
|
||||||
docker
|
|
||||||
.pytest_cache
|
|
||||||
build
|
|
||||||
dist
|
|
||||||
1
.dockerignore
Symbolic link
1
.dockerignore
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
.gitignore
|
||||||
43
.github/workflows/docker-push.yml
vendored
Normal file
43
.github/workflows/docker-push.yml
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
name: Build Docker container on push
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build image
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout project
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set env variables
|
||||||
|
run: |
|
||||||
|
echo "BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')" >> $GITHUB_ENV
|
||||||
|
REPO_OWNER=${{ github.repository_owner }}
|
||||||
|
echo "IMAGE_NAME=${REPO_OWNER,,}/${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
id: qemu
|
||||||
|
|
||||||
|
- name: Setup Docker buildx action
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
id: buildx
|
||||||
|
|
||||||
|
- name: Run Docker buildx
|
||||||
|
run: |
|
||||||
|
docker buildx build \
|
||||||
|
--platform linux/amd64,linux/arm64 \
|
||||||
|
--tag ghcr.io/$IMAGE_NAME:$BRANCH \
|
||||||
|
--output "type=registry" ./
|
||||||
42
.github/workflows/docker-tag.yml
vendored
Normal file
42
.github/workflows/docker-tag.yml
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
name: Build Docker container on tag
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- v[0-9]+.[0-9]+.[0-9]+
|
||||||
|
- v[0-9]+.[0-9]+.[0-9]+-*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build image
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout project
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set env variables
|
||||||
|
run: |
|
||||||
|
echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
|
||||||
|
REPO_OWNER=${{ github.repository_owner }}
|
||||||
|
echo "IMAGE_NAME=${REPO_OWNER,,}/${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Setup Docker buildx action
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Run Docker buildx
|
||||||
|
run: |
|
||||||
|
docker buildx build \
|
||||||
|
--platform linux/amd64,linux/arm64 \
|
||||||
|
--tag ghcr.io/$IMAGE_NAME:$TAG \
|
||||||
|
--output "type=registry" ./
|
||||||
58
Dockerfile
Normal file
58
Dockerfile
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
# OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
ARG USER=specter
|
||||||
|
ARG DIR=/data/
|
||||||
|
|
||||||
|
FROM python:3.9-slim-bullseye AS builder
|
||||||
|
|
||||||
|
ARG VERSION
|
||||||
|
ARG REPO
|
||||||
|
|
||||||
|
RUN apt update && apt install -y git build-essential libusb-1.0-0-dev libudev-dev libffi-dev libssl-dev rustc cargo
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
|
WORKDIR /specter-desktop
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN pip3 install --upgrade pip
|
||||||
|
RUN pip3 install babel cryptography
|
||||||
|
RUN pip3 install .
|
||||||
|
|
||||||
|
|
||||||
|
FROM python:3.9-slim-bullseye as final
|
||||||
|
|
||||||
|
ARG USER
|
||||||
|
ARG DIR
|
||||||
|
|
||||||
|
RUN apt update && apt install -y libusb-1.0-0-dev libudev-dev
|
||||||
|
|
||||||
|
# NOTE: Default GID == UID == 1000
|
||||||
|
RUN adduser --disabled-password \
|
||||||
|
--home "$DIR" \
|
||||||
|
--gecos "" \
|
||||||
|
"$USER"
|
||||||
|
|
||||||
|
# Set user
|
||||||
|
USER $USER
|
||||||
|
|
||||||
|
# Make config directory
|
||||||
|
RUN mkdir -p "$DIR/.specter/"
|
||||||
|
|
||||||
|
|
||||||
|
# Copy over python stuff
|
||||||
|
COPY --from=builder /usr/local/lib/python3.9 /usr/local/lib/python3.9
|
||||||
|
COPY --from=builder /usr/local/bin /usr/local/bin
|
||||||
|
|
||||||
|
|
||||||
|
# Expose ports
|
||||||
|
EXPOSE 25441 25442 25443
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/python3", "-m", "cryptoadvance.specter", "server", "--host", "0.0.0.0"]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue