我有一个 Docker 容器,该容器在我的本地开发机器上运行良好。我想将其移至 AWS Elastic Beanstalk ,但是我遇到了一些麻烦。
我正在尝试使用S3
将s3fs
存储桶安装到我的容器中。我有Dockerfile:
FROM tomcat:7.0
MAINTAINER [email protected]
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential libfuse-dev libcurl4-openssl-dev libxml++2.6-dev libssl-dev mime-support automake libtool wget tar
# Add the java source
ADD . /path/to/tomcat/webapps/
ADD run_docker.sh /root/run_docker.sh
WORKDIR $CATALINA_HOME
EXPOSE 8080
CMD ["/root/run_docker.sh"]
s3fs
,安装S3
存储桶,并在创建镜像后通过运行run_docker.sh
运行 Tomcat 服务器:#!/bin/bash
#run_docker.sh
wget https://github.com/s3fs-fuse/s3fs-fuse/archive/master.zip -O /usr/src/master.zip;
cd /usr/src/;
unzip /usr/src/master.zip;
cd /usr/src/s3fs-fuse-master;
autoreconf --install;
CPPFLAGS=-I/usr/include/libxml2/ /usr/src/s3fs-fuse-master/configure;
make;
make install;
cd $CATALINA_HOME;
mkdir /opt/s3-files;
s3fs my-bucket /opt/s3-files;
catalina.sh run
docker run --cap-add mknod --cap-add sys_admin --device=/dev/fuse -p 80:8080 -d username/mycontainer:latest
--cap-add mknod --cap-add sys_admin --device=/dev/fuse
时,s3fs
无法挂载我的S3
存储桶。run_docker.sh
)时执行所有步骤,除了s3fs my-bucket /opt/s3-files
中的run_docker.sh
步骤无法装入存储桶。--cap-add mknod --cap-add sys_admin --device=/dev/fuse
。Dockerrun.aws.json
文件如下所示:{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "tomcat:7.0"
},
"orts": [
{
"ContainerPort": "8080"
}
]
}
docker run
标志? S3
存储桶的方法,但是我怀疑无论如何我都会遇到类似的权限错误。有没有人看到任何实现这一目标的方法???v1.4.0 running Docker 1.6.0
时,它可以工作。 v1.4.0版本之后的所有内容都会失败。因此,要使其正常工作,请正常构建环境(这将使构建失败),然后使用v1.4.0 running Docker 1.6.0
配置对其进行重建。那应该做!
如果您使用的是最新版本的aws docker stack(例如docker 1.7.1),则需要略微修改以上答案。尝试这个:
commands:
00001_add_privileged:
cwd: /tmp
command: 'sed -i "s/docker run -d/docker run --privileged -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
关于linux - 如何使用非默认运行参数在AWS Elastic Beanstalk中运行Docker容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28267419/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |