-
Notifications
You must be signed in to change notification settings - Fork 1
AWS Notes (old) Home
Clemens H. Cap edited this page Jun 26, 2024
·
1 revision
- This project knows of a parameter called
*familyname*
which identifies a specific type of tasks. - A
*familyname*
must contain lowercase letters and numbers.
./prepare.sh *familyname*
- Creates a repository in the AWS ECR elastic container registry, where we will store all the versions of the images
- Creates a directory structure where we will do the programming
-
src
: For the source files -
def
: For the task definition files -
files
: For the files to be copied in into the elastic file system mounted by the task -
build
: Used internally in the build process
-
- Copy in working boilerplate code into this structure
Inside of directory familyname/src
- Write up a file
Dockerfile
, see example - Write up a file
entrypoint.sh
and providechmod 700
, see example- In Dockerfile use as entrypoint
ENTRYPOINT ["/entrypoint.sh"]
- In Dockerfile do not forget to copy using
COPY entrypoint.sh /
- In Dockerfile use as entrypoint
- Write up a
.dockerignore
if necessary - Write up a
buildspec.yml
file, describing the steps to be taken in the build process, see example
./build.sh *familyname* # do this in the main directory, as before, not in the task directory
This command
- Prepares an S3 bucket as input source of the build process
- Creates a service role for the build process
- Creates a build project
- Kicks off the build process
- Sends us an email as soon as the build process has finished (provided we did the configuration properly as described in Create Email Notification)
- Adjust the files in the
def
directory, if necessary - Then register the task definition by calling (in the main directory)
./task.sh *familyname*
./start.sh *familyname* *task-definition-number*
This command
- creates a cluster
- creates a service running the requested number of tasks
./taskDefinition.sh *familyname*
./use.sh *familyname*
- Lists all running tasks and discovers the public IPs to which they have been bound
- Then we can connect to the service at the required IP addresses
./stop.sh *familyname*
./clean.sh *familyname* # cleans only cluster and service
./cleanAll.sh *familyname* # cleansalso build project and repository