Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用wercker在ecs中创建docker镜像并更新任务定义_Amazon Web Services_Docker_Wercker_Amazon Ecs - Fatal编程技术网

Amazon web services 如何使用wercker在ecs中创建docker镜像并更新任务定义

Amazon web services 如何使用wercker在ecs中创建docker镜像并更新任务定义,amazon-web-services,docker,wercker,amazon-ecs,Amazon Web Services,Docker,Wercker,Amazon Ecs,我正在获取phusion/baseimage并在wercker.yml文件的“build”管道中更新它,但在“deploy”管道中推送到我的注册表的映像似乎不是“phusion/baseimage”的更新版本,我正在安装Java、nginx等,但conatiner映像没有相同的版本。 请帮忙!我感到困惑,因为我在哪里错过了一步。 这是我的wercker.yml: > box: phusion/baseimage no-response-timeout: 15 >

我正在获取phusion/baseimage并在wercker.yml文件的“build”管道中更新它,但在“deploy”管道中推送到我的注册表的映像似乎不是“phusion/baseimage”的更新版本,我正在安装Java、nginx等,但conatiner映像没有相同的版本。 请帮忙!我感到困惑,因为我在哪里错过了一步。 这是我的wercker.yml:

>

     box: phusion/baseimage no-response-timeout: 15
    > 
    > build:
    >     steps:
    >       - script:
    >           name: Install packages
    >           code: |
    >             apt-get update && apt-get upgrade -y
    >             echo "install unzip"  
    >             apt-get install unzip -y
    >             echo "install nginx"
    >             apt-get install nginx -y
    >             apt-get install telnet -y
    >             service nginx stop
    >             apt-get install python2.7 -y
    >             apt-get install python-pip -y
    >             pip install awscli
    >       - script:
    >           name: Oracal Java Installation
    >           code: |
    >             apt-get install software-properties-common -y
    >             add-apt-repository ppa:webupd8team/java -y
    >             apt-get update
    >             echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
    >             apt-get install oracle-java8-installer -y
    >       - script:
    >           name: Jetty Installation
    >           code: |
    >             groupadd -r jetty && useradd -r -g jetty jetty
    >             JETTY_HOME=/usr/local/jetty
    >             PATH=$JETTY_HOME/bin:$PATH
    >             mkdir -p "$JETTY_HOME"
    >             cd /usr/local/jetty
    >             gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B59B67FD7904984367F931800818D9D68FB67BAC
    >             gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 5DE533CB43DAF8BC3E372283E7AE839CD7C58886
    >             curl -SL <jetty.tar.gz>
    > -o jetty.tar.gz
    >             curl -SL <jetty.tar.gz>
    > -o jetty.tar.gz.asc
    >             gpg --verify jetty.tar.gz.asc
    >             tar -xvf jetty.tar.gz --strip-components=1
    >             sed -i '/jetty-logging/d' etc/jetty.conf
    >             rm -fr demo-base javadoc
    >             rm jetty.tar.gz*
    >       - script: 
    >          name: Jetty Configuration
    >          code: |
    >            JETTY_BASE=/var/lib/jetty
    >            mkdir -p "$JETTY_BASE"
    >            cd /var/lib/jetty
    >            modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)"
    >            java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules,setuid"
    >       - script:
    >          name: Jetty RUN
    >          code: |
    >            JETTY_RUN=/run/jetty
    >            JETTY_STATE=$JETTY_RUN/jetty.state
    >            TMPDIR=/tmp/jetty
    >            mkdir -p "$JETTY_RUN" "$TMPDIR"
    >            chown -R jetty:jetty "$JETTY_RUN" "$TMPDIR" "$JETTY_BASE"
    >            mkdir /etc/service/jetty
    >            cp -r start_jetty.sh /etc/service/jetty/run
    >            chmod a+x /etc/service/jetty/run deploy:   box: python:2.7-slim   dockerhub:
    >   - pip-install
    >   - internal/docker-push:
    >       username: $USERNAME
    >       password: $PASSWORD
    >       tag: latest
    >       repository: shantanup/wercker
    >       registry: https://registry.hub.docker.com   aws-ecs:
    >   - script:
    >       name: copy
    >       code: mkdir /app && cp wercker-app.json /app/
    >   - tonnu/aws-ecs:
    >       key: $AWS_ACCESS_KEY
    >       secret: $AWS_SECRET_KEY
    >       region: us-east-1
    >       cluster-name: wrecker-cluster
    >       service-name: wercker
    >       task-definition-name: wercker-task
    >       task-definition-file: /app/wercker-app.json
    >       minimum-running-tasks: 1
>
框:phusion/baseimage无响应超时:15
> 
>建造:
>步骤:
>-脚本:
>名称:安装软件包
>代码:|
>apt获取更新和apt获取升级-y
>echo“安装解压”
>apt-get-install-unzip-y
>echo“安装nginx”
>apt获取安装nginx-y
>apt获得安装telnet-y
>服务nginx站
>apt get安装python2.7-y
>apt get安装python pip-y
>pip安装awscli
>-脚本:
>名称:OracalJava安装
>代码:|
>apt获取安装软件属性公用-y
>添加apt存储库ppa:webupd8team/java-y
>apt获取更新
>echo debconf shared/accepted-oracle-license-v1-1 select true | debconf set selections
>apt get install oracle-java8-installer-y
>-脚本:
>名称:码头安装
>代码:|
>groupadd-r jetty&&useradd-r-g jetty jetty
>JETTY_HOME=/usr/local/JETTY
>路径=$JETTY_HOME/bin:$PATH
>mkdir-p“$JETTY_HOME”
>cd/usr/本地/码头
>gpg--keyserver ha.pool.sks-keyserver.net--recv keys b59b67fd7904984367f931800818d9d68d68fb67bac
>gpg--keyserver ha.pool.sks-keyserver.net--recv keys 5DE533CB43DAF8BC3E372283E7AE839CD7C58886
>curl-SL
>-o jetty.tar.gz
>curl-SL
>-o jetty.tar.gz.asc
>gpg——验证jetty.tar.gz.asc
>tar-xvf jetty.tar.gz——带组件=1
>sed-i'/jetty logging/d'etc/jetty.conf
>rm-fr演示库javadoc
>rm jetty.tar.gz*
>-脚本:
>名称:码头配置
>代码:|
>JETTY_BASE=/var/lib/JETTY
>mkdir-p“$JETTY_基地”
>cd/var/lib/jetty
>modules=“$(grep--^--module=“$JETTY_HOME/start.ini”|剪切-d=-f2 |粘贴-d,-s)”
>java-jar“$JETTY_HOME/start.jar”--添加到startd=“$modules,setuid”
>-脚本:
>名称:码头运行
>代码:|
>JETTY_RUN=/RUN/JETTY
>JETTY_STATE=$JETTY_RUN/JETTY.STATE
>TMPDIR=/tmp/jetty
>mkdir-p“$JETTY_RUN”$TMPDIR”
>chown-R码头:码头“$jetty_RUN”$TMPDIR”$jetty_基地”
>mkdir/etc/服务/码头
>cp-r启动_jetty.sh/etc/service/jetty/run
>chmoda+x/etc/service/jetty/run部署:box:python:2.7-slim dockerhub:
>-pip安装
>-内部/码头推送:
>用户名:$username
>密码:$password
>标签:最新
>存储库:shantanup/wercker
>注册处:https://registry.hub.docker.com   aws云服务器:
>-脚本:
>姓名:复印件
>代码:mkdir/app&&cp-wercker-app.json/app/
>-TONU/aws ecs:
>密钥:$AWS\u访问密钥
>机密:$AWS\U机密\U密钥
>地区:美国东部1
>集群名称:清障集群
>服务名称:wercker
>任务定义名称:wercker任务
>任务定义文件:/app/wercker-app.json
>最低运行任务数:1

我的场景很简单:我需要创建一个docker映像,以“phusion/baseimage”为基础,更新我的注册表,然后自动更新ecs任务定义并运行任务。

似乎您缺少一些docker和wercker的专有技术。Wercker主要用作持续集成服务器,因此负责编译、执行测试和部署成功的构建。它不用于像您试图做的那样准备基本图像。
另一方面,docker就是为了这个。因此,您只需创建自己的docker图像。创建一个基于
phusion/baseimage
的Dockerfile,并安装所有缺失的层(nginx、telnet等)。一旦您对准备的图像满意,您可以将其推送到
Dockerhub
或任何其他docker存储库。然后告诉wercker在构建阶段使用您自己的映像

另一个关键信息-wercker将使用您提供给他的所有步骤,但不会推动创建的构建框,因为它被认为是脏的。相反,它将接受$WERCKER\u SOURCE\u DIR文件夹中的任何内容。因此,在构建过程中创建的任何其他内容都将不包括在内