Tag: compose

在docker中只写入源文件的可写node_modules

我的webapp/Dockerfile看起来像这样: FROM project_base-container EXPOSE 9100 # … # Using copy instead of mount, since we need to write in sub-directories like node_modules etc. COPY . /usr/src/app/webapp CMD ["bash", "webapp/scripts/build_and_run.sh", "setup_deps_and_run_app"] 我想让应用程序能够读取源代码,并写入到像node_modules这样的子文件夹中,但是我不希望这些更改来自我的本地机器。 因此,我有两个select: 在node install更改–prefix='/tmp' ,并将src node install为ro 复制src,然后容器可以写任何想要的地方。 解决scheme1破坏浩劫,因为现在我必须复制/链接像package.json,index.html等所有文件的前缀位置。 解决scheme2就是我上面所做的。 当我使用COPY时,一切都很好。 但是现在的问题是,在源代码发生变化之后,我想每次更新映像中的源代码: sudo docker-compose down && sudo docker-compose up –build -d 但是COPY命令是由dockercaching的,即使在文件改变之后也不会被更新。 TL; DR:我有一个src文件夹'webapp',我想从主机挂载为readonly,但我的应用程序想写入子文件夹'webapp / […]

我在哪里可以得到docker图像脱机?

在我的工作环境中,我无法连接到networking,但是我可以连接到可以连接到networking的下载机器。 但是我不知道如何find一个docker镜像并下载它。 网站docker hub只显示“docker pull nginx”这样的命令,但是我不能连接到networking,对我来说是没用的。 我的问题: 现在,我已经通过下载docker-engine.deb安装了docker。 我在哪里可以得到docker的图像脱机?

创buildTLSconfiguration时出错(v1.3.7)

我一直在摆弄Traefik几个小时,发现它非常有趣。 但是,我遇到了一个我自己无法解决的问题。 这是一个非常简单的设置,只是试图testingHTTP到HTTPSredirect和我的SSL证书。 我有以下docker-compose.yml version: '2' services: traefik: image: traefik:v1.3.7-alpine ports: – "80:80" – "443:443" – "8080:8080" volumes: – /var/run/docker.sock:/var/run/docker.sock:z – /opt/dockerapp/rocketchat/traefik/traefik.toml:/etc/traefik/traefik.toml:ro,z – /opt/dockerapp/rocketchat/traefik/ssl:/etc/traefik/ssl/:ro,z command: –logLevel=DEBUG 我的traefik.toml是 defaultEntryPoints = ["http", "https"] [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] [[entryPoints.https.tls.certificates]] CertFile = "ssl/mycert.pem" KeyFile = "ssl/mycert.key" [docker] domain = […]

如何修复我的docker-compose.yml我得到一个rabbitmq.config是一个目录错误?

我在我的docker-compose.yml中有以下几行 rabbit: volumes: – ./enabled_plugins:/etc/rabbitmq/enabled_plugins – ./config/definitions.json:/opt/definitions.json:ro – ./config/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro 但是对于rabbitmq.config,当我启动它说 /usr/local/bin/docker-entrypoint.sh: line 386: /etc/rabbitmq/rabbitmq.config: Is a directory 任何想法在我的卷声明这里有什么错?

IntelliJdocker部署地址:没有这样的文件或目录

我安装了用于IntelliJ的docker集成插件来即时部署一个项目。 目前我正在用Gradle来开发一个项目。 那里的结构看起来像: project |- build/ |– docker/ |— Dockerfile |— target/ |—- myApp.jar |- docker/ |– Dockerfile |- src/ |– de.myApp/ |— SOURCECODE |- build.gradle |- gradlew 在我的Dockerfile中添加.jar : ADD target/data_sample_set_structure_consumer-0.0.0.jar app.jar 部署configuration使用Deployment: docker/Dockerfile 。 当我点击开始 ,我得到以下错误信息: Step 3/4 : ADD target/data_sample_set_structure_consumer-0.0.0.jar app.jar Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: stat /var/lib/docker/tmp/docker-builder981429297/target/data_sample_set_structure_consumer-0.0.0.jar: no such file or directory] Failed […]

为什么在运行docker容器之后,mysql数据所有权会更改为systemd-journal-remote

我有mysql数据库存储在/home/mysql而不是/var/lib/mysql 。 这个目录曾经被mysql拥有。 但是,当我运行命令docker-compose up这个yml文件: version: '3' services: mariadb: image: mariadb restart: always volumes: – /home/mysql:/var/lib/mysql elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:5.6.4 environment: – "ES_JAVA_OPTS=-Xms750m -Xmx750m" – bootstrap.memory_lock=false site: build: . volumes: – "./app:/app" links: – mariadb:mysql environment: – DOCKER_IP=172.19.0.2 depends_on: ['elasticsearch','mariadb'] ports: – "3000:3000" Docker容器能够运行,但是/home/mysql中的整个文件夹和文件都由systemd-journal-remote ,这导致node服务器无法连接到mariadb 。 我必须停止ib_logfile0实例,恢复mysql文件夹的所有权并删除ib_logfile0和ib_logfile1 。 为什么mount /home/mysql会导致这样一个致命的问题? 更新: 我的解决scheme是添加user: "mysql" : version: '3' […]

通过docker-compose拉ssh-client容器

我是Docker的新手,可能不明白。 我有一个app容器和一个dockerfile 。 我想安装一个ssh-client app容器。 我希望能够运行ssh命令从app容器到达一些外部IP。 我知道的最简单的方法是添加 RUN apk update && apk add openssh-client bash 到我的dockerfile ,但我想使用一些准备好的形象,所以我所有的容器可以使用相同的一个。 有可能吗?

尝试通过Docker Compose将NodeJS应用连接到MongoDB

我正在跟着我的应用程序的MongoDB + NodeJS教程。 一切工作没有Docker ..我实际上可以让应用程序工作,直到它需要连接到MongoDB。 如果我的应用程序没有看到MongoDB,它将打印出一个错误,并停止。 这是我的文件 .ENV NODE_VIEWS_PATH=../ NODE_PUBLIC_PATH=../ MONGODB_URI='mongodb://127.0.0.1:27017/myappsdb' … Dockerfile FROM node:carbon # Create app directory WORKDIR /usr/src/mahrio COPY package*.json ./ RUN npm install # If you are building your code for production # RUN npm install –only=production COPY . . EXPOSE 6085 CMD ["npm", "start"] 泊坞窗,compose.yml version: "2" services: app: container_name: […]

OS X上的mariadb docker容器:无法创build数据库目录

我在OSX上遇到了mariadb问题,我在CentOS上也做过同样的工作。 所以它必须是OSX问题: mariadb: image: mariadb:latest container_name: mariadb ports: – "3306:3306" restart: always environment: MYSQL_ROOT_PASSWORD: XXXXXXXX volumes: – /Users/sandro/Code/mysql:/var/lib/mysql 日志包含以下错误: mkdir: cannot create directory '/var/lib/mysql//mysql': Permission denied Fatal error Can't create database directory '/var/lib/mysql//mysql' 如果我让它像这样安装在容器内: volumes: – /var/lib/mysql 它的工作原理,但我有持续性的问题,一旦虚拟机重新启动dbs不见了。 我试图创buildMySQL目录,并赋予它世界可写权限,而不是收到以下错误: 2016-05-20 23:43:54 140694234605504 [Note] mysqld (mysqld 10.1.14-MariaDB-1~jessie) starting as process 1 … 2016-05-20 23:43:54 140694234605504 [Warning] […]

Docker – 运行一个容器时执行一个bash

我有我的docker-compose文件的这部分: php-fpm: build: ./docker/php container_name: php-fpm-symfony links: – db ports: – 9000:9000 – 8448:8448 – 8000:8000 working_dir: /var/www/html/ volumes: – .:/var/www/html volumes_from: – data tty: true env_file: – ./docker.env entrypoint: /command.sh 这里是我的Dockerfile: FROM php:7.0.8-fpm ADD command.sh /command.sh RUN chmod 777 /command.sh ENTRYPOINT ["/command.sh"] 我在根的command.sh #!/usr/bin/env bash git config –global user.email "${gitEmail}" git config –global user.name […]