forked from FASSt-simulation/simulation_containers
-
Notifications
You must be signed in to change notification settings - Fork 3
/
arm64_docker_builds.txt
149 lines (81 loc) · 6.25 KB
/
arm64_docker_builds.txt
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Sources:
# https://matt-wxw.medium.com/build-docker-images-for-platform-arm64-apple-m1-and-amd64-on-apple-m1-with-docker-desktop-7c6dd5f7f325
# https://andrewlock.net/creating-multi-arch-docker-images-for-arm64-from-windows/
#### Build the AMD64/ARM64 compliant baseOS image (e.g. gcc850 w/ open-mpi 3.1.6)
# Step 1. Create a new docker builder (only needs to be done once)
docker buildx create --name multibuilder --use
# Step 2. Change to local simulation_containers git repo directory
cd /Users/sserbin/Data/GitHub/ngeearctic_elm_containers
# Step 3a. Build an AMD64/ARM64 compliant version of the baseOS container. This is for local builds only
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:baseos_gcc850ompi316_multiarch \
--no-cache --platform linux/amd64,linux/arm64 -f docker/baseos/gcc850ompi316/Dockerfile .
# Just an ARM64 compliant image for testing
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:baseos_gcc850ompi316_arm64 \
--no-cache --platform linux/arm64 -f docker/baseos/gcc850ompi316/Dockerfile_arm64 .
# quick test using cached build
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:baseos_gcc850ompi316_arm64 \
--platform linux/arm64 -f docker/baseos/gcc850ompi316/Dockerfile_arm64 .
# Step 3b. Build an AMD64/ARM64 compliant version of the baseOS container w/ non-parallel libs. This is for local builds only
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:baseos_gcc850ompi316-serial_multiarch \
--no-cache --platform linux/amd64,linux/arm64 -f docker/baseos/gcc850_serial/Dockerfile .
#### Build the latest ARM64 compliant ELM container - based on an ARM64 compliant baseOS image
# Step 1. Create a new docker builder
docker buildx create --name multibuilder --use
# Step 2. Change to local simulation_containers git repo directory
cd /Users/sserbin/Data/GitHub/simulation_containers
# Step 3a. Build multi-arch ELM
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:elm_v2-for-ngee_multiarch --no-cache \
--platform linux/amd64,linux/arm64 -f docker/elm/elm_v2-for-ngee/Dockerfile_multiarch .
# Step 3b. Build AMD64 and ARM64 compliant version of the serial lib ELM docker. This is for local builds only
docker buildx build --push -t serbinsh/ngeearctic_elm_containers:elm_v2-for-ngee-serial_multiarch --no-cache \
--platform linux/amd64,linux/arm64 -f docker/elm/elm_v2-for-ngee/Dockerfile_serial_multiarch .
#### Build a multi-platform version of the jupyter-lab simulation_container
# Step 1. Create a new docker builder (only needs to be done once)
docker buildx create --name multibuilder --use
# Step 2. Change to local simulation tools git repo directory
cd /Users/sserbin/Data/GitHub/fasst_simulation_tools
# Step 3a. Build an AMD64+ARM64 compliant version of the jupyter environment (version 3.3.2, src AMD/ARM compliant)
# https://hub.docker.com/r/jupyter/base-notebook/tags/?page=1&name=3.3.2
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:fasst_jupyterlab_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_lab_3.3.2 .
# Step 3b. Build an AMD64+ARM64 compliant version of the jupyter environment (version 3.3.2, src AMD/ARM compliant)
# Google Earth Engine version
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:fasst_jupyterlab_gee_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_lab_gee_3.3.2 .
# Step 4a. Add example notebook scripts to fasst_jupyterlab_3.3.2 container and label as "elmlab_3.3.2"
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:elmlab_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_elmlab_3.3.2 .
# Step 4b. Add example notebook scripts to fasst_jupyterlab_3.3.2 container and label as "elmlab_3.3.2"
# Google Earth Engine version
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:elmlab_gee_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_elmlab_gee_3.3.2 .
#### Build the STABLE RELEASE ARM64 compliant ELM container - based on an ARM64 compliant baseOS image
# Step 1. Create a new docker builder
docker buildx create --name multibuilder --use
# Step 2. Change to local simulation_containers git repo directory
cd /Users/sserbin/Data/GitHub/simulation_containers
# Step 3. Build an ARM64 compliant version of the ELM docker. This is for local builds only
docker buildx build --push -t fasstsimulation/elm-builds:elm_v2-for-ngee_arm64_stable --no-cache \
--platform linux/arm64 -f docker/elm/elm_v2-for-ngee/Dockerfile_arm64_stable .
###### !!!! OLDER INSTRUCTIONS !!!!!
#### Build a multi-platform version of the jupyter-lab simulation_container
# Step 1. Create a new docker builder (only needs to be done once)
docker buildx create --name multibuilder --use
# Step 2. Change to local simulation_containers git repo directory
cd /Users/sserbin/Data/GitHub/fasst_simulation_tools
# Step 3a. Build an AMD64+ARM64 compliant version of the simulation_container (version 3.3.2, src AMD/ARM compliant)
# https://hub.docker.com/r/jupyter/base-notebook/tags/?page=1&name=3.3.2
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:fasst_jupyterlab_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_lab_3.3.2 .
# Step 3b. Build an AMD64+ARM64 compliant version of the simulation_container (version 3.3.2, src AMD/ARM compliant)
# https://hub.docker.com/r/jupyter/base-notebook/tags/?page=1&name=3.3.2
# With Google Earth Engine and GEEmap
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:fasst_jupyterlab_3.3.2_gee --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_lab_gee_3.3.2 .
# Step 3. Build an AMD64+ARM64 compliant version of the simulation_container (version 3.4.0, src AMD/ARM compliant)
# https://hub.docker.com/r/jupyter/base-notebook/tags?page=1&name=3.4.0
# !!!
# Step 3a. Build an AMD64+ARM64 compliant version of the simulation_container (version 3.3.2, src AMD/ARM compliant)
# Alternative Step - add new scripts to jupyter-lab container without rebuilding the full container
docker buildx build --push -t fasstsimulation/fasst_simulation_tools:elmlab_3.3.2 --no-cache \
--platform linux/amd64,linux/arm64 -f docker/jupyter/Dockerfile_elmlab_3.3.2 .