[Seaside] Ci automated deploy of seaside to Digital Ocean
Tim Mackinnon
tim at testit.works
Thu May 10 21:55:49 UTC 2018
I forgot to mention - you are correct that this isn’t a good solution for a widely use production system - as I think you would want to use a load balancer to stop traffic to one image while sessions complete before terminating it. OR - there must be some cloud based solution for this these days - presumably using docker…
Still for hobby experiments - this and Digital Ocean seems ideal.
Tim
> On 10 May 2018, at 22:17, Tim Mackinnon <tim at testit.works> wrote:
>
> Ah - I see (hadn’t thought about having a configurable port number),
>
> So if Ive understood correctly I could install supervisord with a config file like yours.
>
> Then on completion of my build, I could sftp my new image up to DO, and then execute a command like: supervisorctl restart psworker?
>
> Doing a check does seem to show lots of people use either it or monit (the latter being a bit more complicated).
>
> Thanks for the help - this is my next learning step.
>
> Tim
>
>> On 10 May 2018, at 19:47, Esteban A. Maringolo <emaringolo at gmail.com> wrote:
>>
>>
>>
>> On 10/05/2018 15:30, Esteban A. Maringolo wrote:
>>> How would you know when to kill the running vm+image? It might have
>>> active sessions.
>>>
>>> If you don't care about that, what I used to manage a bunch of "worker
>>> images" (process groups) with supervisord [1], so in that case you'd
>>> stop all the related workers, copy the new image, and start the
>>> workers again.
>> My supervisord.conf entry for a pool of working images was:
>>
>> [program:psworker]
>> command=/home/trentosur/perfectstore/pharo-vm/pharo --nodisplay
>> /home/trentosur/perfectstore/ps.image worker.st 818%(process_num)1d
>> process_name=%(program_name)s_%(process_num)02d ; process_name expr
>> (default %(program_name)s)
>> numprocs=2
>> directory=/home/trentosur/perfectstore
>> autostart=false
>> autorestart=true
>> user=trentosur
>> stopasgroup=true
>> killasgroup=true
>>
>>
>> Part of the worker.st file handling the port number was:
>>
>> "Seaside server start"
>> Smalltalk isHeadless ifTrue: [
>> Smalltalk commandLine arguments
>> ifEmpty: [
>> Transcript show: 'No port parameter was specified.'; cr.
>> Smalltalk quitPrimitive. ]
>> ifNotEmpty: [:args |
>> | port |
>> port := args first asNumber asInteger.
>> Transcript show: 'Starting worker image at port ', port asString; cr.
>> ZnZincServerAdaptor startOn: port.
>> ZnZincServerAdaptor default server debugMode: false.
>> ]
>> ]
>> ifFalse: [
>> | port |
>> port := 8080.
>> Transcript show: 'Starting worker image at port ', port asString; cr.
>> ZnZincServerAdaptor startOn: port.
>> ZnZincServerAdaptor default server debugMode: true.
>> ].
>>
>>
>> I hope it helps.
>>
>> Best regards,
>>
>>
>>
>> --
>> Esteban A. Maringolo
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list