“volumes 'type' is a required property” when running docker-compose
I am working through understanding how docker-compose.yaml works. I am trying to define a volume inside the compose file and to mount it at a mount point locally. I try to run a basic .yaml to mount my volume:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
But when I run docker-compose down
, I get an error:
$ docker-compose down
The Compose file '.docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
I am new to this and still am understanding all the nuances of working with Docker. I think that my problem is that it's an either an indention error or how I am calling the version number with the extension, but I can't seem to understand the error.
bash docker container yaml
New contributor
add a comment |
I am working through understanding how docker-compose.yaml works. I am trying to define a volume inside the compose file and to mount it at a mount point locally. I try to run a basic .yaml to mount my volume:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
But when I run docker-compose down
, I get an error:
$ docker-compose down
The Compose file '.docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
I am new to this and still am understanding all the nuances of working with Docker. I think that my problem is that it's an either an indention error or how I am calling the version number with the extension, but I can't seem to understand the error.
bash docker container yaml
New contributor
add a comment |
I am working through understanding how docker-compose.yaml works. I am trying to define a volume inside the compose file and to mount it at a mount point locally. I try to run a basic .yaml to mount my volume:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
But when I run docker-compose down
, I get an error:
$ docker-compose down
The Compose file '.docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
I am new to this and still am understanding all the nuances of working with Docker. I think that my problem is that it's an either an indention error or how I am calling the version number with the extension, but I can't seem to understand the error.
bash docker container yaml
New contributor
I am working through understanding how docker-compose.yaml works. I am trying to define a volume inside the compose file and to mount it at a mount point locally. I try to run a basic .yaml to mount my volume:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
But when I run docker-compose down
, I get an error:
$ docker-compose down
The Compose file '.docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
I am new to this and still am understanding all the nuances of working with Docker. I think that my problem is that it's an either an indention error or how I am calling the version number with the extension, but I can't seem to understand the error.
bash docker container yaml
bash docker container yaml
New contributor
New contributor
edited 2 days ago
New contributor
asked Jan 3 at 17:30
user7298979
31
31
New contributor
New contributor
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The compose file is whitespace sensitive (this is yaml formatting). There are two different volume sections in a compose file, one where the volume is defined at the top level of indentation, and another where the volume is used within a service. You've attempted to define both within the service, and the second set of volumes is defined incorrectly for defining how to use the volume (it needs a target directory there). The following is what you want to try:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data:
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the errorIn file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?
– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
user7298979 is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1390250%2fvolumes-type-is-a-required-property-when-running-docker-compose%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The compose file is whitespace sensitive (this is yaml formatting). There are two different volume sections in a compose file, one where the volume is defined at the top level of indentation, and another where the volume is used within a service. You've attempted to define both within the service, and the second set of volumes is defined incorrectly for defining how to use the volume (it needs a target directory there). The following is what you want to try:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data:
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the errorIn file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?
– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
add a comment |
The compose file is whitespace sensitive (this is yaml formatting). There are two different volume sections in a compose file, one where the volume is defined at the top level of indentation, and another where the volume is used within a service. You've attempted to define both within the service, and the second set of volumes is defined incorrectly for defining how to use the volume (it needs a target directory there). The following is what you want to try:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data:
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the errorIn file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?
– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
add a comment |
The compose file is whitespace sensitive (this is yaml formatting). There are two different volume sections in a compose file, one where the volume is defined at the top level of indentation, and another where the volume is used within a service. You've attempted to define both within the service, and the second set of volumes is defined incorrectly for defining how to use the volume (it needs a target directory there). The following is what you want to try:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data:
The compose file is whitespace sensitive (this is yaml formatting). There are two different volume sections in a compose file, one where the volume is defined at the top level of indentation, and another where the volume is used within a service. You've attempted to define both within the service, and the second set of volumes is defined incorrectly for defining how to use the volume (it needs a target directory there). The following is what you want to try:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data:
edited 2 days ago
answered 2 days ago
BMitch
1385
1385
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the errorIn file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?
– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
add a comment |
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the errorIn file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?
– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the error
In file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?– user7298979
2 days ago
Thank you @BMitch. I tried with the recommended indention for defining the target directory, but I get the error
In file '.docker-compose.yml', volume must be a mapping, not an array.
. I think this also is an indention error, correct?– user7298979
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
@user7298979 I copy and paste too much, thought you had a second volume defined. There's no need to specify the driver as local, and the field is a map rather than an array for the top level volume definition.
– BMitch
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
Thank you!! that worked!!
– user7298979
2 days ago
add a comment |
user7298979 is a new contributor. Be nice, and check out our Code of Conduct.
user7298979 is a new contributor. Be nice, and check out our Code of Conduct.
user7298979 is a new contributor. Be nice, and check out our Code of Conduct.
user7298979 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1390250%2fvolumes-type-is-a-required-property-when-running-docker-compose%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown