on master help sign in
refactor on 20200510
commita5c3f0b37735acd276ffc153416c63b8ff71d9d8 authorHugh JF Chen <hugh.jf.chen@gmail.com> dateSun 10 May 2020, 11:57 (6 years ago) parent69ff6cd
4 files changed+39−151
ci/DevOps/local/test/build/build.sh+1−1 ci/DevOps/local/test/build/nix/default.nix+23−123 ci/DevOps/local/test/deploy/docker-compose.yml+9−21 ci/DevOps/local/test/deploy/prepare.sh+6−6
ci/DevOps/local/test/build/build.sh+1−1
@@ -23,7 +23,7 @@ if [ -f ${SCRIPT_ABS_PATH}/nix/project-m36.nix ]; then
2323 else
2424 #nix-shell --run "cd ${SCRIPT_ABS_PATH}/../../../../.. ; cabal new-update ; cabal new-clean ; cabal new-test" ${SCRIPT_ABS_PATH}/nix/shell.nix
2525 #nix-shell --run "cd ${SCRIPT_ABS_PATH}/../../../../.. ; cabal new-clean" ${SCRIPT_ABS_PATH}/nix/shell.nix
26− nix-build -A project-m36-server-docker -A project-m36-websocket-server-docker -A project-m36-tutd-docker ${SCRIPT_ABS_PATH}/nix/default.nix
26+ nix-build -A project-m36-docker ${SCRIPT_ABS_PATH}/nix/default.nix
2727 fi
2828else
2929 info "No ${SCRIPT_ABS_PATH}/nix/project-m36.nix found, skip building"
ci/DevOps/local/test/build/nix/default.nix+23−123
@@ -238,136 +238,40 @@ divert 258 DIVERT # Divert pseudo-protocol
238238 '';
239239 };
240240
241− overrideCabal = drv: f: (drv.override (args: args // {
242− mkDerivation = drv: (args.mkDerivation drv).override f;
243− })) // {
244− overrideScope = scope: overrideCabal (drv.overrideScope scope) f;
245− };
246−
247− static-project-m36-server = drv: overrideCabal drv (drv: {
248− postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc $out/bin/Example* $out/bin/tutd $out/bin/bigrel $out/bin/handles $out/bin/project-m36-websocket-server";
249− });
250−
251− static-project-m36-websocket-server = drv: overrideCabal drv (drv: {
252− postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc $out/bin/Example* $out/bin/tutd $out/bin/bigrel $out/bin/handles $out/bin/project-m36-server";
253− });
254−
255− static-project-m36-tutd = drv: overrideCabal drv (drv: {
256− postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc $out/bin/Example* $out/bin/project-m36-server $out/bin/bigrel $out/bin/handles $out/bin/project-m36-websocket-server";
257− });
258−
259− static-project-m36-example = drv: overrideCabal drv (drv: {
260− postFixup = "rm -fr $out/lib $out/nix-support $out/share/doc $out/bin/tutd $out/bin/bigrel $out/bin/handles $out/bin/project-m36-server $out/bin/project-m36-websocket-server";
261− });
262−
263− project-m36-server-docker = pkgs.dockerTools.buildImage {
264− name = "project-m36-server";
265− tag = project-m36.version;
266−
267− contents = [ (static-project-m36-server static-project-m36)
268− project-m36-env ];
269− config = {
270− Env = [
271− "PARA1="
272− "PARA2="
273− ];
274− User = "project-m36";
275− Cmd = [ "${static-project-m36}/bin/project-m36-server" ];
276− ExposedPorts = {
277− "5432/tcp" = {};
278− };
279− WorkingDir = "/data";
280− Volumes = {
281− "/data" = {};
282− };
283− };
284−};
285−
286− project-m36-websocket-server-docker = pkgs.dockerTools.buildImage {
287− name = "project-m36-websocket";
288− tag = project-m36.version;
289−
290− contents = [ (static-project-m36-websocket-server static-project-m36)
291− project-m36-env ];
292− config = {
293− Env = [
294− "PARA1="
295− "PARA2="
296− ];
297− User = "project-m36";
298− Cmd = [ "${static-project-m36}/bin/project-m36-websocket-server" ];
299− ExposedPorts = {
300− "5432/tcp" = {};
301− };
302− WorkingDir = "/data";
303− Volumes = {
304− "/data" = {};
305− };
306− };
307−};
308− project-m36-tutd-docker = pkgs.dockerTools.buildImage {
309− name = "project-m36-tutd";
310− tag = project-m36.version;
311−
312− contents = [ (static-project-m36-tutd static-project-m36)
313− project-m36-env ];
314− config = {
315− Env = [
316− "PARA1="
317− "PARA2="
318− ];
319− User = "project-m36";
320− Cmd = [ "${static-project-m36}/bin/tutd" ];
321− ExposedPorts = {
322− "5432/tcp" = {};
323− };
324− WorkingDir = "/data";
325− Volumes = {
326− "/data" = {};
327− };
328− };
329−};
330− project-m36-example-docker = pkgs.dockerTools.buildImage {
331− name = "project-m36-example";
332− tag = project-m36.version;
333−
334− contents = [ (static-project-m36-example static-project-m36)
335− project-m36-env ];
336− config = {
337− Env = [
338− "PARA1="
339− "PARA2="
340− ];
341− User = "project-m36";
342− Cmd = [ "${static-project-m36}/bin/Example-SimpleClient" ];
343− ExposedPorts = {
344− "5432/tcp" = {};
345− };
346− WorkingDir = "/data";
347− Volumes = {
348− "/data" = {};
349− };
350− };
351−};
352241 project-m36-docker = pkgs.dockerTools.buildImage {
353242 name = "project-m36";
354243 tag = project-m36.version;
355−
244+ created = "now";
245+ # This is a quick and dirty hack to fix the hard-coding architecture
246+ extraCommands = ''
247+ myar=$(uname -m)
248+ case $myar in
249+ aarch64)
250+ cat $out/json | sed 's/"amd64"/"arm64"/g' > $out/json1
251+ cp $out/json1 $out/json
252+ ;;
253+ *) ;;
254+ esac
255+ '';
256+
356257 contents = [ static-project-m36
357258 project-m36-env ];
358259 config = {
359− Env = [
360− "PARA1="
361− "PARA2="
260+ Env = [
261+ "PATH=${static-project-m36}/bin:$PATH"
262+ "DATABASE=mytestdb"
263+ "DATABASE_DIRECTORY=/var/project-m36/data"
264+ "HOSTNAME=localhost"
265+ "PORT=54321"
362266 ];
363267 User = "project-m36";
364− Cmd = [ "${static-project-m36}/bin/project-m36-server" ];
268+ Cmd = [ "project-m36-server" ];
365269 ExposedPorts = {
366− "5432/tcp" = {};
270+ "54321/tcp" = {};
367271 };
368− WorkingDir = "/data";
272+ WorkingDir = "/var/project-m36/data";
369273 Volumes = {
370− "/data" = {};
274+ "/var/project-m36/data" = {};
371275 };
372276 };
373277};
@@ -375,8 +279,4 @@ in {
375279 inherit project-m36;
376280 inherit static-project-m36;
377281 inherit project-m36-docker;
378− inherit project-m36-server-docker;
379− inherit project-m36-websocket-server-docker;
380− inherit project-m36-tutd-docker;
381− inherit project-m36-example-docker;
382282}
ci/DevOps/local/test/deploy/docker-compose.yml+9−21
@@ -3,31 +3,19 @@
33version: '2'
44services:
55 project-m36:
6− image: project-m36:0.1.0.0
6+ image: project-m36:0.7
77 ports:
8− - "3000:3000"
9− links:
10− - depend_service:depend_service
8+ - "54321:54321"
9+ # links:
10+ # - depend_service:depend_service
1111 user: project-m36
1212 environment:
13− PARA1: XXXXX
14− PARA2: YYYYY
15− command: static_project-m36_nix_store_path/bin/project-m36
13+ DATABASE: mytestdb
14+ DATABASE_DIRECTORY: /var/project-m36/data
15+ command: project-m36-server --database $DATABASE --database-directory $DATABASE_DIRECTORY
1616 volumes:
1717 - "project-m36_config_path:/var/project-m36/config"
1818 - "project-m36_data_path:/var/project-m36/data"
19− depends_on:
20− - depend_service
21− restart: unless-stopped
22− depend_service:
23− build: depend_service
24− ports:
25− - "5432:5432"
26− user: depend_service
27− environment:
28− DEPEND_SERVICE_PARA1: ZZZZ
29− command: depend_service
30− volumes:
31− - "depend_service_path:/var/lib/depend_service_path"
32− - "depend_service_data_path:/depend_service_data"
19+ # depends_on:
20+ # - depend_service
3321 restart: unless-stopped
ci/DevOps/local/test/deploy/prepare.sh+6−6
@@ -45,11 +45,11 @@ sudo chown project-m36:project-m36 /var/project-m36/docker-compose-project-m36.y
4545sudo sed "s:project-m36_config_path:/var/project-m36/config:g" < /var/project-m36/docker-compose-project-m36.yml.orig | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.01" project-m36
4646sudo sed "s:project-m36_data_path:/var/project-m36/data:g" < /var/project-m36/docker-compose-project-m36.yml.01 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
4747
48−if [ -L ${SCRIPT_ABS_PATH}/../../../../result ]; then
49− project-m36_IMAGE_ID=$(sudo sg docker -c "docker images"|grep -w project-m36|awk '{print $3}')
50− cmdPath=$(sudo sg docker -c "docker image inspect ${project-m36_IMAGE_ID}" | grep "/nix/store/" | awk -F"/" '{print "/nix/store/"$4}')
51− sudo sed "s:static_project-m36_nix_store_path:${cmdPath}:g" < /var/project-m36/docker-compose-project-m36.yml | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.02" project-m36
52− sudo cat /var/project-m36/docker-compose-project-m36.yml.02 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
53−fi
48+# if [ -L ${SCRIPT_ABS_PATH}/../../../../result ]; then
49+# project-m36_IMAGE_ID=$(sudo sg docker -c "docker images"|grep -w project-m36|awk '{print $3}')
50+# cmdPath=$(sudo sg docker -c "docker image inspect ${project-m36_IMAGE_ID}" | grep "/nix/store/" | awk -F"/" '{print "/nix/store/"$4}')
51+# sudo sed "s:static_project-m36_nix_store_path:${cmdPath}:g" < /var/project-m36/docker-compose-project-m36.yml | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.02" project-m36
52+# sudo cat /var/project-m36/docker-compose-project-m36.yml.02 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
53+# fi
5454
5555done_banner "project-m36" "deploy prepare"