Add build from source

This commit is contained in:
Xiaonan Shen 2020-06-01 06:51:24 -07:00
parent cc6eba9bf2
commit 55175292b0
5 changed files with 82 additions and 0 deletions

8
build/.dockerignore Normal file
View File

@ -0,0 +1,8 @@
*
!.dockerignore
!VERSION
!entrypoint.sh
!gpgparams
!Dockerfile
!build.sh

28
build/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM golang:1.13 AS build
# Install dependencies
RUN apt-get update && apt-get install -y libsecret-1-dev
# Build
WORKDIR /build/
COPY build.sh VERSION /build/
RUN bash build.sh
FROM ubuntu:20.04
LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp
EXPOSE 143/tcp
# Install dependencies and protonmail bridge
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat pass libsecret-1-0 \
&& rm -rf /var/lib/apt/lists/*
# Copy bash scripts
COPY gpgparams entrypoint.sh /protonmail/
# Copy protonmail
COPY --from=build /build/proton-bridge/Desktop-Bridge /protonmail/
ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"]

1
build/VERSION Normal file
View File

@ -0,0 +1 @@
v1.2.7-live.1

16
build/build.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/bash
set -ex
VERSION=`cat VERSION`
# Clone new code
git clone https://github.com/ProtonMail/proton-bridge.git
cd proton-bridge
git checkout $VERSION
# Enable debug log
sed -i "s/build desktop/-debug build desktop/" Makefile
# Build
make build-nogui

29
build/entrypoint.sh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/bash
set -ex
# Initialize
if [[ $1 == init ]]; then
# Initialize pass
gpg --generate-key --batch /protonmail/gpgparams
pass init pass-key
# Login
/protonmail/Desktop-Bridge --cli
else
# socat will make the conn appear to come from 127.0.0.1
# ProtonMail Bridge currently expects that.
# It also allows us to bind to the real ports :)
socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 &
socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 &
# Start protonmail
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | /protonmail/Desktop-Bridge --cli
fi