Carmel
view release on metacpan or search on metacpan
requires 'Starman', '0.2000';
> carmel install
> echo /.carmel >> .gitignore
> git add cpanfile cpanfile.snapshot .gitignore
> git commit -m "add Plack and Starman"
# On a new setup, or another developer's machine
> git pull
> carmel install
> carmel exec starman -p 8080 myapp.psgi
# Add a new dependency
> echo "requires 'Try::Tiny';" >> cpanfile
> carmel install
> git commit -am 'Add Try::Tiny'
# Update Plack to the latest
> carmel update Plack
Production Deployments
include paths, or to avoid installing Carmel in the production hosts.
Carmel provides two easy ways to avoid depending on Carmel on the
deploy target environments. First, carmel rollout rolls out the build
artifacts into a regular perl5 library path in local. Once the rollout
is complete, you can include the path just like a regular local::lib
directory.
# Production environment: Roll out to ./local
> carmel rollout
> perl -Ilocal/lib/perl5 local/bin/starman -p 8080 myapp.psgi
You can run carmel rollout> in a CI system to create the local
directory next to your application code for a linux package (e.g. deb
package), or Docker containers.
Second, carmel package (similar to carton bundle) creates a directory
with tarballs and CPAN-style package index files, which you can pass to
cpanm on a target machine. This way, you only need cpanm, which is
available as a self-contained single executable, to bootstrap the
installation on a host with a stock perl.
lib/Carmel.pm view on Meta::CPAN
requires 'Starman', '0.2000';
> carmel install
> echo /.carmel >> .gitignore
> git add cpanfile cpanfile.snapshot .gitignore
> git commit -m "add Plack and Starman"
# On a new setup, or another developer's machine
> git pull
> carmel install
> carmel exec starman -p 8080 myapp.psgi
# Add a new dependency
> echo "requires 'Try::Tiny';" >> cpanfile
> carmel install
> git commit -am 'Add Try::Tiny'
# Update Plack to the latest
> carmel update Plack
=head2 Production Deployments
lib/Carmel.pm view on Meta::CPAN
avoid the overhead with large number of include paths, or to avoid installing
Carmel in the production hosts.
Carmel provides two easy ways to avoid depending on Carmel on the deploy target
environments. First, C<carmel rollout> rolls out the build artifacts into a
regular perl5 library path in C<local>. Once the rollout is complete, you can
include the path just like a regular L<local::lib> directory.
# Production environment: Roll out to ./local
> carmel rollout
> perl -Ilocal/lib/perl5 local/bin/starman -p 8080 myapp.psgi
You can run C<carmel rollout>> in a CI system to create the C<local> directory
next to your application code for a linux package (e.g. deb package), or Docker
containers.
Second, C<carmel package> (similar to C<carton bundle>) creates a directory with
tarballs and CPAN-style package index files, which you can pass to L<cpanm> on a
target machine. This way, you only need C<cpanm>, which is available as a
self-contained single executable, to bootstrap the installation on a host with a
stock perl.
( run in 1.452 second using v1.01-cache-2.11-cpan-e93a5daba3e )