加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

git – 将Perl Docker容器部署到Elastic Beanstalk

发布时间:2020-12-16 03:38:50 所属栏目:安全 来源:网络整理
导读:我正在构建一个Docker容器,它从bitbucket中提取perl / mojolicious repo,但我遇到了问题.我有这样的Dockerfile: # DOCKER-VERSION 0.3.4FROM perl:latestMAINTAINER My Name myname@name.com# Update aptitude with new repoRUN apt-get update# Install so

我正在构建一个Docker容器,它从bitbucket中提取perl / mojolicious repo,但我遇到了问题.我有这样的Dockerfile:

# DOCKER-VERSION 0.3.4
FROM        perl:latest
MAINTAINER  My Name myname@name.com

# Update aptitude with new repo
RUN apt-get update

# Install software 
RUN apt-get install -y git
# Make ssh dir
RUN mkdir /root/.ssh/

# Copy over private key,and set permissions
ADD repo-key /root/.ssh/id_rsa

# Create known_hosts
RUN touch /root/.ssh/known_hosts
# Add bitbuckets key
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

RUN curl -L http://cpanmin.us | perl - App::cpanminus
RUN cpanm Mojolicious

RUN cachebuster=b953b35 git clone -b branch git@bitbucket.org:org/project.git

EXPOSE 8080

WORKDIR project
CMD hypnotoad script/project

并且,在本地,在docker build -t name / project上.它建立得很好,并说“成功建立.”

我用repo-key文件将其压缩并将其提供给Elastic Beanstalk,我点击了Upload and Deploy(我成功部署了2048游戏样本,并尝试复制它).

这与Dockerrun.aws.json一起回来:没有这样的文件或目录.我认为这很奇怪,因为文档说Dockerfile或Dockerrun.aws.json可以独立用于不同的需求.但无论如何,我给了它一个简短的,希望无关紧要的Dockerrun.aws.json,就像这样:

{
    "AWSEBDockerrunVersion": "1","Ports": [
        {"ContainerPort": "8080"}
    ],"Volumes": []
}

它仍然失败并且日志现在声明[CMD-AppDeploy / AppDeployStage0 / AppDeployPreHook / 04run.sh]命令失败,错误代码为1:并且在启动后,Docker容器进一步意外退出.

有人可以帮我解决这些文件吗?

最佳答案
我想到了.问题是催眠术默认在后台运行,这使容器立即死亡.通过添加-f标志,它在前台运行并且容器仍然存在.我还将CMD切换到ENTRYPOINT.

#... same as above except for last line

WORKDIR project
ENTRYPOINT [ "hypnotoad","-f","./script/project" ]

您仍然需要向Dock提供EB Dockerfile和Dockerrun.aws.json,但是即便如此,它也能正常运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读