Skip to content

Commit 4fea8f7

Browse files
committed
er
1 parent dc5e63d commit 4fea8f7

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

Dockerfile

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# This docker machine is able to compile and sign Lantern for Linux and
2+
# Windows.
3+
4+
FROM fedora:21
5+
MAINTAINER "The Lantern Team" <[email protected]>
6+
7+
ENV WORKDIR /lantern
8+
ENV SECRETS /secrets
9+
10+
RUN mkdir -p $WORKDIR
11+
RUN mkdir -p $SECRETS
12+
13+
# Updating system.
14+
RUN yum install -y deltarpm && yum update -y && yum clean packages
15+
16+
# Requisites for building Go.
17+
RUN yum install -y git tar gzip curl hostname && yum clean packages
18+
19+
# Compilers and tools for CGO.
20+
RUN yum install -y gcc gcc-c++ libgcc.i686 gcc-c++.i686 pkg-config && yum clean packages
21+
22+
# Requisites for bootstrapping.
23+
RUN yum install -y glibc-devel glibc-static && yum clean packages
24+
RUN yum install -y glibc-devel.i686 glib2-static.i686 glibc-2.20-8.fc21.i686 libgcc.i686 && yum clean packages
25+
26+
# Requisites for ARM
27+
# ARM EABI toolchain must be grabbed from an contributor repository, such as:
28+
# https://copr.fedoraproject.org/coprs/lantw44/arm-linux-gnueabi-toolchain/
29+
RUN yum install -y yum-utils && \
30+
rpm --import https://copr-be.cloud.fedoraproject.org/results/lantw44/arm-linux-gnueabi-toolchain/pubkey.gpg && \
31+
yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/lantw44/arm-linux-gnueabi-toolchain/repo/fedora-21/lantw44-arm-linux-gnueabi-toolchain-fedora-21.repo && \
32+
yum install -y arm-linux-gnueabi-gcc arm-linux-gnueabi-binutils arm-linux-gnueabi-glibc && \
33+
yum clean packages
34+
35+
# Requisites for windows.
36+
RUN yum install -y mingw32-gcc.x86_64 && yum clean packages
37+
38+
# Requisites for building Lantern on Linux.
39+
RUN yum install -y gtk3-devel libappindicator-gtk3 libappindicator-gtk3-devel && yum clean packages
40+
RUN yum install -y pango.i686 pango-devel.i686 gtk3-devel.i686 gdk-pixbuf2-devel.i686 cairo-gobject-devel.i686 \
41+
atk-devel.i686 libappindicator-gtk3-devel.i686 libdbusmenu-devel.i686 dbus-devel.i686 pkgconfig.i686 && \
42+
yum clean packages
43+
44+
# Requisites for packing Lantern for Debian.
45+
# The fpm packer. (https://rubygems.org/gems/fpm)
46+
RUN yum install -y ruby ruby-devel make && yum clean packages
47+
RUN gem install fpm
48+
49+
# Requisites for packing Lantern for Windows.
50+
RUN yum install -y osslsigncode mingw32-nsis && yum clean packages
51+
52+
# Required for compressing update files
53+
RUN yum install -y bzip2 && yum clean packages
54+
55+
# Requisites for genassets.
56+
RUN curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
57+
RUN yum -y install nodejs && yum clean packages
58+
RUN npm install -g gulp
59+
60+
# Getting Go.
61+
ENV GOROOT /usr/local/go
62+
ENV GOPATH /
63+
64+
ENV PATH $PATH:$GOROOT/bin
65+
66+
ENV GO_PACKAGE_URL https://s3-eu-west-1.amazonaws.com/uaalto/go1.6.2_lantern_20160503_linux_amd64.tar.gz
67+
RUN curl -sSL $GO_PACKAGE_URL | tar -xvzf - -C /usr/local
68+
69+
# Expect the $WORKDIR volume to be mounted.
70+
VOLUME [ "$WORKDIR" ]
71+
72+
WORKDIR $WORKDIR

0 commit comments

Comments
 (0)