-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
89 lines (67 loc) · 2.4 KB
/
Dockerfile
File metadata and controls
89 lines (67 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# 🌄 PDS Engineering: GitHub Actions Base
# =======================================
FROM python:3.13.5-alpine3.22
# Varaibles and Support
# ---------------------
#
# Set up the various variables and the image metadata.
#
#
# Python Package Pins
# ~~~~~~~~~~~~~~~~~~~
#
# It would be nice to use Alpine's own package manager (`apk`) to install a
# number of Python packages, however, despite the official python:3.13.5 image
# being based on alpine3.22, alpine3.22 itself has standardized on python 3.12.
# Therefore, we have to `pip install` all of our dependencies and avoid the
# apk py3-* packages.
ENV github3_py=4.0.1
ENV lxml=6.0.0
ENV numpy=2.2.3
ENV pandas=2.3.0
ENV requests=2.32.4
ENV twine=6.1.0
# Node.js Package Pins
# ~~~~~~~~~~~~~~~~~~~~
ENV jest=29.7
ENV jsdoc=4.0.2
# Metadata
# ~~~~~~~~
LABEL "repository"="https://github.com/NASA-PDS/github-actions-base.git"
LABEL "homepage"="https://pds-engineering.jpl.nasa.gov/"
LABEL "maintainer"="Sean Kelly <kelly@seankelly.biz>"
# Image Details
# -------------
#
# Note we include some bigger Python packages used by other PDS projects.
COPY m2-repository.tar.bz2 /tmp
WORKDIR /root
# Base packages from the package manager, `apk`
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RUN : &&\
mkdir /root/.m2 &&\
tar x -C /root/.m2 -j -f /tmp/m2-repository.tar.bz2 &&\
rm /tmp/m2-repository.tar.bz2 &&\
apk update &&\
apk add --no-progress --virtual /build ruby-dev make cargo &&\
apk add --no-progress bash git-lfs gcc g++ musl-dev libxml2 libxslt git ruby ruby-libs ruby-multi_json &&\
apk add --no-progress openssh-client maven openjdk8 gnupg libgit2-dev libffi-dev libxml2-dev libxslt-dev &&\
apk add --no-progress openssl-dev npm &&\
:
# Python packages from `pip`
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~
RUN : &&\
pip install --quiet --upgrade pip setuptools wheel build &&\
pip install --quiet github3.py==${github3_py} lxml==${lxml} numpy==${numpy} pandas==${pandas} &&\
pip install --quiet requests==${requests} twine==${twine} &&\
:
# Node.js packages from `npm`
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~
RUN : &&\
gem install github_changelog_generator --version 1.16.4 &&\
npm install --save-dev jest@${jest} jsdoc@${jsdoc} &&\
wget -qP /usr/local/bin https://github.com/X1011/git-directory-deploy/raw/master/deploy.sh &&\
chmod +x /usr/local/bin/deploy.sh &&\
apk del /build &&\
rm -rf /var/cache/apk/* &&\
: /