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