【发布时间】:2021-03-25 03:08:58
【问题描述】:
我创建了一个 ec2 Amazon Linux 实例并尝试在其上构建一个 docker 容器。
我创建了一个名为 server 的文件夹并将我所有的源代码(包括 DockerFile 和 docker-compose.yml)放入其中。
当我运行 docker-compose up -d 时,出现错误。
PermissionError: [Errno 13] Permission denied: '/server/db-data/sys'
[4499] Failed to execute script docker-compose
db-data 用作 mysql 映像的卷。
Dockerfile
FROM node:lts-alpine
WORKDIR /server
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3030
CMD ["npm", "run", "dev"]
docker-compose.yml
version: '2.1'
services:
test-db:
image: mysql:5.7
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=true
- MYSQL_USER=admin
- MYSQL_PASSWORD=12345
- MYSQL_DATABASE=test
volumes:
- ./db-data:/var/lib/mysql
ports:
- 3306:3306
test-web:
environment:
- NODE_ENV=local
#- DEBUG=*
- PORT=3030
build: .
command: >
./wait-for-db-redis.sh test-db npm run dev
volumes:
- ./:/server
ports:
- "3030:3030"
depends_on:
- test-db
.dockerignore
node_modules
npm-debug.log
等待-for-db-redis.sh
#!/bin/sh
# wait-for-db-redis.sh
set -e
db_host="$1"
shift
cmd="$@"
until nc -z $db_host 3306; do
>&2 echo "MySQL is unavailable - sleeping"
sleep 1
done
>&2 echo "MySQL is up - Executing command"
exec $cmd
【问题讨论】:
-
你试过sudo吗?
-
@AjithGopi: docker-compose: 命令未找到
-
stackoverflow.com/a/59240143/5321660 看看这个答案。找到 docker 二进制文件并尝试使用完整路径。
标签: amazon-web-services docker amazon-ec2 docker-compose