【问题标题】:docker-compose on ec2 instance: PermissionError: [Errno 13] Permission denieddocker-compose 在 ec2 实例上:PermissionError: [Errno 13] Permission denied
【发布时间】: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


【解决方案1】:

试试这个

  1. 使用whereis commandname 查找命令的位置。
  2. 这将返回它的绝对路径。 3)export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:the/path/you/got
  3. 现在您可以运行命令了

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2019-07-31
    • 2016-08-17
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多