컨테이너 이미지를 저장, 관리, 배포할 수 있는 레지스트리 서비스
AWSCLIv2를 설치해줍니다.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
ln -s /usr/local/bin/aws /usr/bin/
ln -s /usr/local/bin/aws_completer /usr/bin/
Docker를 설치합니다.
yum install -y docker
systemctl enable --now docker
usermod -aG docker ec2-user
usermod -aG docker root
chmod 666 /var/run/docker.sock
#!/usr/bin/python3
from flask import Flask, abort, request, jsonify
app = Flask(__name__)
@app.route('/health', methods=['GET'])
def get_health():
try:
ret = {'status': 'ok'}
return jsonify(ret), 200
except Exception as e:
logging.error(e)
abort(500)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
aws ecr create-repository --repository-name <ECR name> --image-tag-mutability MUTABLE --region <region>
FROM ubuntu:latest
WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
EXPOSE 8080
CMD ["python3", "app.py"]
docker build -t <image name> .
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<ECR image> latest 9475526dfbc6 30 minutes ago 476MB
ubuntu latest 08d22c0ceb15 2 weeks ago 77.8MB
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account id>.dkr.ecr.<region>.amazonaws.com
docker tag <ECR name>:latest <account id>.dkr.ecr.ap-northeast-2.amazonaws.com/<ECR name>:latest
docker push <account id>.dkr.ecr.ap-northeast-2.amazonaws.com/<ECR name>:latest