Remove terraform.zip, update pgAdmin email default, and enhance workspace startup script with JetBrains Gateway integration
This commit is contained in:
@@ -1 +0,0 @@
|
||||
3.12
|
||||
59
tf/.terraform.lock.hcl
generated
59
tf/.terraform.lock.hcl
generated
@@ -1,59 +0,0 @@
|
||||
# This file is maintained automatically by "terraform init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.terraform.io/coder/coder" {
|
||||
version = "2.10.0"
|
||||
constraints = "~> 2.0"
|
||||
hashes = [
|
||||
"h1:hOsj4BaX4JNy2wQbJB2ROqI/1uf8ObtweRTDZI8Sj7U=",
|
||||
"zh:040183aa59daec3d3d8321982a7641fe191a81bc614302a92bfd82cc93a3dde9",
|
||||
"zh:11e9f51483ad3a6461325d352c264f5619cdb9590e311774eb1a2bf48aa55f82",
|
||||
"zh:362ade1c76fabb51e8e0fffb494a032601cf1867f74813d47478629ca9aa9f40",
|
||||
"zh:3812ef65fa5d97e26e0609d854d2b1909c0f1c9d99506c3b68cdb6e30005c5b1",
|
||||
"zh:3ec6e25bc6dca613772a9612aee00ca6a0aec76c67c000150fd04c36c62678d7",
|
||||
"zh:411322b5abc25815a516af4ff63614137b3ba3d1104f65a3e8e66b848dbe0f88",
|
||||
"zh:4a19f3ed8240767ce49e40c122b13767eb67581fdbbad99ba1904448098128f2",
|
||||
"zh:4e0a8f41cc4497a5fbc814cb538a536b304141583c734c74e8f8448e20f9614b",
|
||||
"zh:64b6eba9d8af58f7976ec8c909d5642d636cd81c9ef09b7b60b00f905386c4fc",
|
||||
"zh:6f841289beda7e1300e495f2bc779a0a608e3191cf1fe6a90599291c54ef7a58",
|
||||
"zh:a4e6d3fce198f4c03bd956f76460d77ee31e7c08feaa2c35db18c91752be7403",
|
||||
"zh:b12be11f74daea4acb88f3f4cb0b60044d181084bfd5d0eb0535e314272913b4",
|
||||
"zh:c795ab3eca672796b0bd76d426f397703e48648aea110acbd2ae09f012a31893",
|
||||
"zh:e6eb0380c8622106d9f443ffc4b4318451055539a046350e9f9e958ad078bf93",
|
||||
"zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c",
|
||||
]
|
||||
}
|
||||
|
||||
provider "registry.terraform.io/coder/envbuilder" {
|
||||
version = "1.0.0"
|
||||
constraints = "~> 1.0"
|
||||
hashes = [
|
||||
"h1:EijMsTkZ+GM+0gSaTR2Rw9FO9vJE7i6w3U5/Z76zBsQ=",
|
||||
"zh:638f85855a86dd9f783ac667d302a2fe072ff6570e866dabed8082d74a246c09",
|
||||
"zh:8316dd29b5015d178cb6f8ecd4b10e4df766a82496d06883ba4c91ef410ce719",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:d91bc816e66c01ef552b04413bd0d83f35a217eb578148da31ba54c0fe0aca31",
|
||||
]
|
||||
}
|
||||
|
||||
provider "registry.terraform.io/kreuzwerker/docker" {
|
||||
version = "2.25.0"
|
||||
constraints = "~> 2.25"
|
||||
hashes = [
|
||||
"h1:nB2atWOMNrq3tfVH216oFFCQ/TNjAXXno6ZyZhlGdQs=",
|
||||
"zh:02ca00d987b2e56195d2e97d82349f680d4b94a6a0d514dc6c0031317aec4f11",
|
||||
"zh:432d333412f01b7547b3b264ec85a2627869fdf5f75df9d237b0dc6a6848b292",
|
||||
"zh:4709e81fea2b9132020d6c786a1d1d02c77254fc0e299ea1bb636892b6cadac6",
|
||||
"zh:53c4a4ab59a1e0671d2292d74f14e060489482d430ad811016bf7cb95503c5de",
|
||||
"zh:6c0865e514ceffbf19ace806fb4595bf05d0a165dd9c8664f8768da385ccc091",
|
||||
"zh:6d72716d58b8c18cd0b223265b2a190648a14973223cc198a019b300ede07570",
|
||||
"zh:a710ce90557c54396dfc27b282452a8f5373eb112a10e9fd77043ca05d30e72f",
|
||||
"zh:e0868c7ac58af596edfa578473013bd550e40c0a1f6adc2c717445ebf9fd694e",
|
||||
"zh:e2ab2c40631f100130e7b525e07be7a9b8d8fcb8f57f21dca235a3e15818636b",
|
||||
"zh:e40c93b1d99660f92dd0c75611bcb9e68ae706d4c0bc6fac32f672e19e6f05bf",
|
||||
"zh:e480501b2dd1399135ec7eb820e1be88f9381d32c4df093f2f4645863f8c48f4",
|
||||
"zh:f1a71e90aa388d34691595883f6526543063f8e338792b7c2c003b2c8c63d108",
|
||||
"zh:f346cd5d25a31991487ca5dc7a05e104776c3917482bc2a24ec6a90bb697b22e",
|
||||
"zh:fa822a4eb4e6385e88fbb133fd63d3a953693712a7adeb371913a2d477c0148c",
|
||||
]
|
||||
}
|
||||
@@ -1,373 +0,0 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
@@ -1,103 +0,0 @@
|
||||
# terraform-provider-coder
|
||||
|
||||
Terraform provider for [Coder](https://github.com/coder/coder).
|
||||
|
||||
### Developing
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
- [Go](https://golang.org/doc/install)
|
||||
- [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
|
||||
|
||||
We recommend using [`nix`](https://nixos.org/download.html) to manage your development environment. If you have `nix` installed, you can run `nix develop` to enter a shell with all the necessary dependencies.
|
||||
|
||||
Alternatively, you can install the dependencies manually.
|
||||
|
||||
#### Building
|
||||
|
||||
Follow the instructions outlined in the [Terraform documentation](https://developer.hashicorp.com/terraform/cli/config/config-file#development-overrides-for-provider-developers)
|
||||
to setup your local Terraform to use your local version rather than the registry version.
|
||||
|
||||
1. Create a file named `.terraformrc` in your `$HOME` directory
|
||||
2. Add the following content:
|
||||
|
||||
```hcl
|
||||
provider_installation {
|
||||
# Override the coder/coder provider to use your local version
|
||||
dev_overrides {
|
||||
"coder/coder" = "/path/to/terraform-provider-coder"
|
||||
}
|
||||
|
||||
# For all other providers, install them directly from their origin provider
|
||||
# registries as normal. If you omit this, Terraform will _only_ use
|
||||
# the dev_overrides block, and so no other providers will be available.
|
||||
direct {}
|
||||
}
|
||||
```
|
||||
|
||||
3. (optional, but recommended) Validate your configuration:
|
||||
1. Create a new `main.tf` file and include:
|
||||
```hcl
|
||||
terraform {
|
||||
required_providers {
|
||||
coder = {
|
||||
source = "coder/coder"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
2. Run `terraform init` and observe a warning like `Warning: Provider development overrides are in effect`
|
||||
4. Run `make build` to build the provider binary, which Terraform will try locate and execute
|
||||
5. All local Terraform runs will now use your local provider!
|
||||
6. **NOTE**: We vendor this provider into `github.com/coder/coder`, so if you're testing with a local clone, make sure to run the following in your local clone of `coder`:
|
||||
```console
|
||||
go mod edit -replace github.com/coder/terraform-provider-coder/v2=/path/to/terraform-provider-coder
|
||||
go mod tidy
|
||||
```
|
||||
⚠️ Be sure to include `/v2` in the module path as it needs to match the version declared in the provider’s `go.mod`.
|
||||
|
||||
|
||||
#### Terraform Acceptance Tests
|
||||
|
||||
To run Terraform acceptance tests, run `make testacc`. This will test the provider against the locally installed version of Terraform.
|
||||
|
||||
> [!Note]
|
||||
> Our [CI workflow](./github/workflows/test.yml) runs a test matrix against multiple Terraform versions.
|
||||
|
||||
#### Integration Tests
|
||||
|
||||
The tests under the `./integration` directory perform the following steps:
|
||||
|
||||
- Build the local version of the provider,
|
||||
- Run an in-memory Coder instance with a specified version,
|
||||
- Validate the behaviour of the local provider against that specific version of Coder.
|
||||
|
||||
To run these integration tests locally:
|
||||
|
||||
1. Pull the version of the Coder image you wish to test:
|
||||
|
||||
```console
|
||||
docker pull ghcr.io/coder/coder-preview:main-x.y.z-devel-abcd1234
|
||||
```
|
||||
|
||||
1. Run `CODER_IMAGE=ghcr.io/coder/coder-preview CODER_VERSION=main-x.y.z-devel-abcd1234 make test-integration`.
|
||||
|
||||
> [!Note]
|
||||
> You can specify `CODER_IMAGE` if the Coder image you wish to test is hosted somewhere other than `ghcr.io/coder/coder`.
|
||||
> For example, `CODER_IMAGE=example.com/repo/coder CODER_VERSION=foobar make test-integration`.
|
||||
|
||||
### How to create a new release
|
||||
> [!Warning]
|
||||
> Before creating a new release, make sure you have pulled the latest commit from the main branch i.e. `git pull origin main`
|
||||
|
||||
1. Create a new tag with a version number (following semantic versioning):
|
||||
```console
|
||||
git tag -a v2.1.2 -m "v2.1.2"
|
||||
```
|
||||
|
||||
2. Push the tag to the remote repository:
|
||||
```console
|
||||
git push origin tag v2.1.2
|
||||
```
|
||||
|
||||
A GitHub Actions workflow named "Release" will automatically trigger, run integration tests, and publish the new release.
|
||||
Binary file not shown.
@@ -1,382 +0,0 @@
|
||||
# Mozilla Public License Version 2.0
|
||||
|
||||
1. Definitions
|
||||
|
||||
---
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
|
||||
---
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
|
||||
---
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
|
||||
---
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
|
||||
---
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
---
|
||||
|
||||
- *
|
||||
- 6. Disclaimer of Warranty \*
|
||||
- ------------------------- \*
|
||||
- *
|
||||
- Covered Software is provided under this License on an "as is" \*
|
||||
- basis, without warranty of any kind, either expressed, implied, or \*
|
||||
- statutory, including, without limitation, warranties that the \*
|
||||
- Covered Software is free of defects, merchantable, fit for a \*
|
||||
- particular purpose or non-infringing. The entire risk as to the \*
|
||||
- quality and performance of the Covered Software is with You. \*
|
||||
- Should any Covered Software prove defective in any respect, You \*
|
||||
- (not any Contributor) assume the cost of any necessary servicing, \*
|
||||
- repair, or correction. This disclaimer of warranty constitutes an \*
|
||||
- essential part of this License. No use of any Covered Software is \*
|
||||
- authorized under this License except under this disclaimer. \*
|
||||
- *
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
- *
|
||||
- 7. Limitation of Liability \*
|
||||
- -------------------------- \*
|
||||
- *
|
||||
- Under no circumstances and under no legal theory, whether tort \*
|
||||
- (including negligence), contract, or otherwise, shall any \*
|
||||
- Contributor, or anyone who distributes Covered Software as \*
|
||||
- permitted above, be liable to You for any direct, indirect, \*
|
||||
- special, incidental, or consequential damages of any character \*
|
||||
- including, without limitation, damages for lost profits, loss of \*
|
||||
- goodwill, work stoppage, computer failure or malfunction, or any \*
|
||||
- and all other commercial damages or losses, even if such party \*
|
||||
- shall have been informed of the possibility of such damages. This \*
|
||||
- limitation of liability shall not apply to liability for death or \*
|
||||
- personal injury resulting from such party's negligence to the \*
|
||||
- extent applicable law prohibits such limitation. Some \*
|
||||
- jurisdictions do not allow the exclusion or limitation of \*
|
||||
- incidental or consequential damages, so this exclusion and \*
|
||||
- limitation may not apply to You. \*
|
||||
- *
|
||||
|
||||
---
|
||||
|
||||
8. Litigation
|
||||
|
||||
---
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
|
||||
---
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
|
||||
---
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
## Exhibit A - Source Code Form License Notice
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
## Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
@@ -1,49 +0,0 @@
|
||||
# terraform-provider-envbuilder
|
||||
|
||||
The `terraform-provider-envbuilder` is a Terraform provider that acts as a helper for setting up [`envbuilder`](https://envbuilder.sh) environments.
|
||||
|
||||
It is used to determine if a pre-built image of a dev container built from a given Git repository is present in a given Docker registry.
|
||||
If it is found that building a particular dev container would produce the same image that is already present in the remote registry, then that image can be used to start the container instead, skipping over the build phase.
|
||||
|
||||
> **Note:** currently, this provider can only be run on Linux platforms. We are [investigating support](https://github.com/coder/terraform-provider-envbuilder/issues/26) for other platforms.
|
||||
|
||||
## Usage
|
||||
|
||||
Take a look at the [`envbuilder_cached_image_resource.tf`](./examples/resources/envbuilder_cached_image/envbuilder_cached_image_resource.tf) example for a detailed usage example.
|
||||
|
||||
For use with [Coder](https://github.com/coder/coder), see the [Dev Containers documentation](https://coder.com/docs/templates/dev-containers) and check out the example templates:
|
||||
- [Docker](https://github.com/coder/coder/tree/main/examples/templates/devcontainer-docker)
|
||||
- [Kubernetes](https://github.com/coder/coder/tree/main/examples/templates/devcontainer-kuberntes)
|
||||
- [AWS VM](https://github.com/coder/coder/tree/main/examples/templates/devcontainer-aws-vm)
|
||||
- [GCP VM](https://github.com/coder/coder/tree/main/examples/templates/devcontainer-gcp-vm)
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Terraform](https://developer.hashicorp.com/terraform/downloads) >= 1.0
|
||||
- [Go](https://golang.org/doc/install) >= 1.22
|
||||
|
||||
## Building The Provider
|
||||
|
||||
1. Clone the repository
|
||||
1. Enter the repository directory
|
||||
1. Build the provider using the Go `install` command:
|
||||
|
||||
```shell
|
||||
go install
|
||||
```
|
||||
|
||||
## Developing the Provider
|
||||
|
||||
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
|
||||
|
||||
To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
|
||||
|
||||
To generate or update documentation, run `go generate`.
|
||||
|
||||
In order to run the full suite of Acceptance tests, run `make testacc`.
|
||||
|
||||
*Note:* Acceptance tests create real resources, and often cost money to run.
|
||||
|
||||
```shell
|
||||
make testacc
|
||||
```
|
||||
Binary file not shown.
@@ -1,610 +0,0 @@
|
||||
|
||||
<a name="v2.25.0"></a>
|
||||
## [v2.25.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.24.0...v2.25.0) (2023-01-05)
|
||||
|
||||
### Docs
|
||||
|
||||
* Add documentation of remote hosts. ([#498](https://github.com/kreuzwerker/terraform-provider-docker/issues/498))
|
||||
|
||||
### Feat
|
||||
|
||||
* Migrate build block to `docker_image` ([#501](https://github.com/kreuzwerker/terraform-provider-docker/issues/501))
|
||||
* Add platform attribute to docker_image resource ([#500](https://github.com/kreuzwerker/terraform-provider-docker/issues/500))
|
||||
* Add sysctl implementation to container of docker_service. ([#499](https://github.com/kreuzwerker/terraform-provider-docker/issues/499))
|
||||
|
||||
|
||||
<a name="v2.24.0"></a>
|
||||
## [v2.24.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.23.1...v2.24.0) (2022-12-23)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.24.0
|
||||
|
||||
### Docs
|
||||
|
||||
* Fix generated website.
|
||||
* Update command typo ([#487](https://github.com/kreuzwerker/terraform-provider-docker/issues/487))
|
||||
|
||||
### Feat
|
||||
|
||||
* cgroupns support ([#497](https://github.com/kreuzwerker/terraform-provider-docker/issues/497))
|
||||
* Add triggers attribute to docker_registry_image ([#496](https://github.com/kreuzwerker/terraform-provider-docker/issues/496))
|
||||
* Support registries with disabled auth ([#494](https://github.com/kreuzwerker/terraform-provider-docker/issues/494))
|
||||
* add IPAM options block for docker networks ([#491](https://github.com/kreuzwerker/terraform-provider-docker/issues/491))
|
||||
|
||||
### Fix
|
||||
|
||||
* Pin data source specific tag test to older tag.
|
||||
|
||||
### Tests
|
||||
|
||||
* Add test for parsing auth headers.
|
||||
|
||||
|
||||
<a name="v2.23.1"></a>
|
||||
## [v2.23.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.23.0...v2.23.1) (2022-11-23)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.23.1
|
||||
|
||||
### Fix
|
||||
|
||||
* Update shasum of busybox:1.35.0 tag in test.
|
||||
* Handle Auth Header Scopes ([#482](https://github.com/kreuzwerker/terraform-provider-docker/issues/482))
|
||||
* Set OS_ARCH from GOHOSTOS and GOHOSTARCH ([#477](https://github.com/kreuzwerker/terraform-provider-docker/issues/477))
|
||||
|
||||
|
||||
<a name="v2.23.0"></a>
|
||||
## [v2.23.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.22.0...v2.23.0) (2022-11-02)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.23.0
|
||||
|
||||
### Feat
|
||||
|
||||
* wait container healthy state ([#467](https://github.com/kreuzwerker/terraform-provider-docker/issues/467))
|
||||
* add docker logs data source ([#471](https://github.com/kreuzwerker/terraform-provider-docker/issues/471))
|
||||
|
||||
### Fix
|
||||
|
||||
* Update shasum of busybox:1.35.0 tag in test.
|
||||
* Update shasum of busybox:1.35.0 tag
|
||||
* Correct provider name to match the public registry ([#462](https://github.com/kreuzwerker/terraform-provider-docker/issues/462))
|
||||
|
||||
|
||||
<a name="v2.22.0"></a>
|
||||
## [v2.22.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.21.0...v2.22.0) (2022-09-20)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.22.0
|
||||
|
||||
### Feat
|
||||
|
||||
* Configurable timeout for docker_container resource stateChangeConf ([#454](https://github.com/kreuzwerker/terraform-provider-docker/issues/454))
|
||||
|
||||
### Fix
|
||||
|
||||
* oauth authorization support for azurecr ([#451](https://github.com/kreuzwerker/terraform-provider-docker/issues/451))
|
||||
|
||||
|
||||
<a name="v2.21.0"></a>
|
||||
## [v2.21.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.3...v2.21.0) (2022-09-05)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.21.0
|
||||
|
||||
### Docs
|
||||
|
||||
* Fix docker config example.
|
||||
|
||||
### Feat
|
||||
|
||||
* Add image_id attribute to docker_image resource. ([#450](https://github.com/kreuzwerker/terraform-provider-docker/issues/450))
|
||||
* Update used goversion to 1.18. ([#449](https://github.com/kreuzwerker/terraform-provider-docker/issues/449))
|
||||
|
||||
### Fix
|
||||
|
||||
* Replace deprecated .latest attribute with new image_id. ([#453](https://github.com/kreuzwerker/terraform-provider-docker/issues/453))
|
||||
* Remove reading part of docker_tag resource. ([#448](https://github.com/kreuzwerker/terraform-provider-docker/issues/448))
|
||||
* Fix repo_digest value for DockerImageDatasource test.
|
||||
|
||||
|
||||
<a name="v2.20.3"></a>
|
||||
## [v2.20.3](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.2...v2.20.3) (2022-08-31)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.20.3
|
||||
|
||||
### Fix
|
||||
|
||||
* Docker Registry Image data source use HEAD request to query image digest ([#433](https://github.com/kreuzwerker/terraform-provider-docker/issues/433))
|
||||
* Adding Support for Windows Paths in Bash ([#438](https://github.com/kreuzwerker/terraform-provider-docker/issues/438))
|
||||
|
||||
|
||||
<a name="v2.20.2"></a>
|
||||
## [v2.20.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.1...v2.20.2) (2022-08-10)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.20.2
|
||||
|
||||
### Fix
|
||||
|
||||
* Check the operating system for determining the default Docker socket ([#427](https://github.com/kreuzwerker/terraform-provider-docker/issues/427))
|
||||
|
||||
### Reverts
|
||||
|
||||
* fix(deps): update module github.com/golangci/golangci-lint to v1.48.0 ([#423](https://github.com/kreuzwerker/terraform-provider-docker/issues/423))
|
||||
|
||||
|
||||
<a name="v2.20.1"></a>
|
||||
## [v2.20.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.20.0...v2.20.1) (2022-08-10)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.20.1
|
||||
* Reduce time to setup AccTests ([#430](https://github.com/kreuzwerker/terraform-provider-docker/issues/430))
|
||||
|
||||
### Docs
|
||||
|
||||
* Improve docker network usage documentation [skip-ci]
|
||||
|
||||
### Feat
|
||||
|
||||
* Implement triggers attribute for docker_image. ([#425](https://github.com/kreuzwerker/terraform-provider-docker/issues/425))
|
||||
|
||||
### Fix
|
||||
|
||||
* Add ForceTrue to docker_image name attribute. ([#421](https://github.com/kreuzwerker/terraform-provider-docker/issues/421))
|
||||
|
||||
|
||||
<a name="v2.20.0"></a>
|
||||
## [v2.20.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.19.0...v2.20.0) (2022-07-28)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.20.0
|
||||
* Fix release targets in Makefile.
|
||||
|
||||
### Feat
|
||||
|
||||
* Implementation of `docker_tag` resource. ([#418](https://github.com/kreuzwerker/terraform-provider-docker/issues/418))
|
||||
* Implement support for insecure registries ([#414](https://github.com/kreuzwerker/terraform-provider-docker/issues/414))
|
||||
|
||||
|
||||
<a name="v2.19.0"></a>
|
||||
## [v2.19.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.18.1...v2.19.0) (2022-07-15)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.19.0
|
||||
|
||||
### Feat
|
||||
|
||||
* Add gpu flag to docker_container resource ([#405](https://github.com/kreuzwerker/terraform-provider-docker/issues/405))
|
||||
|
||||
### Fix
|
||||
|
||||
* Enable authentication to multiple registries again. ([#400](https://github.com/kreuzwerker/terraform-provider-docker/issues/400))
|
||||
* ECR authentication ([#409](https://github.com/kreuzwerker/terraform-provider-docker/issues/409))
|
||||
|
||||
|
||||
<a name="v2.18.1"></a>
|
||||
## [v2.18.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.18.0...v2.18.1) (2022-07-14)
|
||||
|
||||
### Chore
|
||||
|
||||
* Prepare release v2.18.1
|
||||
* Automate changelog generation [skip ci]
|
||||
|
||||
### Fix
|
||||
|
||||
* Improve searchLocalImages error handling. ([#407](https://github.com/kreuzwerker/terraform-provider-docker/issues/407))
|
||||
* Throw errors when any part of docker config file handling goes wrong. ([#406](https://github.com/kreuzwerker/terraform-provider-docker/issues/406))
|
||||
* Enables having a Dockerfile outside the context ([#402](https://github.com/kreuzwerker/terraform-provider-docker/issues/402))
|
||||
|
||||
|
||||
<a name="v2.18.0"></a>
|
||||
## [v2.18.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.17.0...v2.18.0) (2022-07-11)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.18.0
|
||||
|
||||
### Feat
|
||||
|
||||
* add runtime, stop_signal and stop_timeout properties to the docker_container resource ([#364](https://github.com/kreuzwerker/terraform-provider-docker/issues/364))
|
||||
|
||||
### Fix
|
||||
|
||||
* Correctly handle build files and context for docker_registry_image ([#398](https://github.com/kreuzwerker/terraform-provider-docker/issues/398))
|
||||
* Switch to proper go tools mechanism to fix website-* workflows. ([#399](https://github.com/kreuzwerker/terraform-provider-docker/issues/399))
|
||||
* compare relative paths when excluding, fixes kreuzwerker[#280](https://github.com/kreuzwerker/terraform-provider-docker/issues/280) ([#397](https://github.com/kreuzwerker/terraform-provider-docker/issues/397))
|
||||
|
||||
|
||||
<a name="v2.17.0"></a>
|
||||
## [v2.17.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.16.0...v2.17.0) (2022-06-23)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.17.0
|
||||
* Exclude examples directory from renovate.
|
||||
* remove the workflow to close stale issues and pull requests ([#371](https://github.com/kreuzwerker/terraform-provider-docker/issues/371))
|
||||
|
||||
### Fix
|
||||
|
||||
* update go package files directly on master to fix build.
|
||||
* correct authentication for ghcr.io registry([#349](https://github.com/kreuzwerker/terraform-provider-docker/issues/349))
|
||||
|
||||
|
||||
<a name="v2.16.0"></a>
|
||||
## [v2.16.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.15.0...v2.16.0) (2022-01-24)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.16.0
|
||||
|
||||
### Docs
|
||||
|
||||
* fix service options ([#337](https://github.com/kreuzwerker/terraform-provider-docker/issues/337))
|
||||
* update registry_image.md ([#321](https://github.com/kreuzwerker/terraform-provider-docker/issues/321))
|
||||
* fix r/registry_image truncated docs ([#304](https://github.com/kreuzwerker/terraform-provider-docker/issues/304))
|
||||
|
||||
### Feat
|
||||
|
||||
* add parameter for SSH options ([#335](https://github.com/kreuzwerker/terraform-provider-docker/issues/335))
|
||||
|
||||
### Fix
|
||||
|
||||
* pass container rm flag ([#322](https://github.com/kreuzwerker/terraform-provider-docker/issues/322))
|
||||
* add nil check of DriverConfig ([#315](https://github.com/kreuzwerker/terraform-provider-docker/issues/315))
|
||||
* fmt of go files for go 1.17
|
||||
|
||||
|
||||
<a name="v2.15.0"></a>
|
||||
## [v2.15.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.14.0...v2.15.0) (2021-08-11)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.15.0
|
||||
* re go gets terraform-plugin-docs
|
||||
|
||||
### Docs
|
||||
|
||||
* corrects authentication misspell. Closes [#264](https://github.com/kreuzwerker/terraform-provider-docker/issues/264)
|
||||
|
||||
### Feat
|
||||
|
||||
* add container storage opts ([#258](https://github.com/kreuzwerker/terraform-provider-docker/issues/258))
|
||||
|
||||
### Fix
|
||||
|
||||
* add current timestamp for file upload to container ([#259](https://github.com/kreuzwerker/terraform-provider-docker/issues/259))
|
||||
|
||||
|
||||
<a name="v2.14.0"></a>
|
||||
## [v2.14.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.13.0...v2.14.0) (2021-07-09)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.14.0
|
||||
|
||||
### Docs
|
||||
|
||||
* update to absolute path for registry image context ([#246](https://github.com/kreuzwerker/terraform-provider-docker/issues/246))
|
||||
* update readme with logos and subsections ([#235](https://github.com/kreuzwerker/terraform-provider-docker/issues/235))
|
||||
|
||||
### Feat
|
||||
|
||||
* support terraform v1 ([#242](https://github.com/kreuzwerker/terraform-provider-docker/issues/242))
|
||||
|
||||
### Fix
|
||||
|
||||
* Update the URL of the docker hub registry ([#230](https://github.com/kreuzwerker/terraform-provider-docker/issues/230))
|
||||
|
||||
|
||||
<a name="v2.13.0"></a>
|
||||
## [v2.13.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.2...v2.13.0) (2021-06-22)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.13.0
|
||||
|
||||
### Docs
|
||||
|
||||
* fix a few typos ([#216](https://github.com/kreuzwerker/terraform-provider-docker/issues/216))
|
||||
* fix typos in docker_image example usage ([#213](https://github.com/kreuzwerker/terraform-provider-docker/issues/213))
|
||||
|
||||
|
||||
<a name="v2.12.2"></a>
|
||||
## [v2.12.2](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.1...v2.12.2) (2021-05-26)
|
||||
|
||||
### Chore
|
||||
|
||||
* prepare release v2.12.2
|
||||
|
||||
|
||||
<a name="v2.12.1"></a>
|
||||
## [v2.12.1](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.12.0...v2.12.1) (2021-05-26)
|
||||
|
||||
### Chore
|
||||
|
||||
* update changelog for v2.12.1
|
||||
|
||||
### Fix
|
||||
|
||||
* add service host flattener with space split ([#205](https://github.com/kreuzwerker/terraform-provider-docker/issues/205))
|
||||
* service state upgradeV2 for empty auth
|
||||
|
||||
|
||||
<a name="v2.12.0"></a>
|
||||
## [v2.12.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.11.0...v2.12.0) (2021-05-23)
|
||||
|
||||
### Chore
|
||||
|
||||
* update changelog for v2.12.0
|
||||
* ignore dist folder
|
||||
* configure actions/stale ([#157](https://github.com/kreuzwerker/terraform-provider-docker/issues/157))
|
||||
* add the guide about Terraform Configuration in Bug Report ([#139](https://github.com/kreuzwerker/terraform-provider-docker/issues/139))
|
||||
* bump docker dependency to v20.10.5 ([#119](https://github.com/kreuzwerker/terraform-provider-docker/issues/119))
|
||||
|
||||
### Ci
|
||||
|
||||
* run acceptance tests with multiple Terraform versions ([#129](https://github.com/kreuzwerker/terraform-provider-docker/issues/129))
|
||||
|
||||
### Docs
|
||||
|
||||
* update for v2.12.0
|
||||
* add releasing steps
|
||||
* format `Guide of Bug report` ([#159](https://github.com/kreuzwerker/terraform-provider-docker/issues/159))
|
||||
* add an example to build an image with docker_image ([#158](https://github.com/kreuzwerker/terraform-provider-docker/issues/158))
|
||||
* add a guide about writing issues to CONTRIBUTING.md ([#149](https://github.com/kreuzwerker/terraform-provider-docker/issues/149))
|
||||
* fix Github repository URL in README ([#136](https://github.com/kreuzwerker/terraform-provider-docker/issues/136))
|
||||
|
||||
### Feat
|
||||
|
||||
* support darwin arm builds and golang 1.16 ([#140](https://github.com/kreuzwerker/terraform-provider-docker/issues/140))
|
||||
* migrate to terraform-sdk v2 ([#102](https://github.com/kreuzwerker/terraform-provider-docker/issues/102))
|
||||
|
||||
### Fix
|
||||
|
||||
* rewriting tar header fields ([#198](https://github.com/kreuzwerker/terraform-provider-docker/issues/198))
|
||||
* test spaces for windows ([#190](https://github.com/kreuzwerker/terraform-provider-docker/issues/190))
|
||||
* replace for loops with StateChangeConf ([#182](https://github.com/kreuzwerker/terraform-provider-docker/issues/182))
|
||||
* skip sign on compile action
|
||||
* assign map to rawState when it is nil to prevent panic ([#180](https://github.com/kreuzwerker/terraform-provider-docker/issues/180))
|
||||
* search local images with Docker image ID ([#151](https://github.com/kreuzwerker/terraform-provider-docker/issues/151))
|
||||
* set "ForceNew: true" to labelSchema ([#152](https://github.com/kreuzwerker/terraform-provider-docker/issues/152))
|
||||
|
||||
|
||||
<a name="v2.11.0"></a>
|
||||
## [v2.11.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.10.0...v2.11.0) (2021-01-22)
|
||||
|
||||
### Chore
|
||||
|
||||
* update changelog for v2.11.0
|
||||
* updates changelog for v2.10.0
|
||||
|
||||
### Docs
|
||||
|
||||
* fix legacy configuration style ([#126](https://github.com/kreuzwerker/terraform-provider-docker/issues/126))
|
||||
|
||||
### Feat
|
||||
|
||||
* add properties -it (tty and stdin_opn) to docker container
|
||||
|
||||
|
||||
<a name="v2.10.0"></a>
|
||||
## [v2.10.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.9.0...v2.10.0) (2021-01-08)
|
||||
|
||||
### Chore
|
||||
|
||||
* updates changelog for 2.10.0
|
||||
* ignores testing folders
|
||||
* adds separate bug and ft req templates
|
||||
|
||||
### Ci
|
||||
|
||||
* bumps to docker version 20.10.1
|
||||
* pins workflows to ubuntu:20.04 image
|
||||
|
||||
### Docs
|
||||
|
||||
* add labels to arguments of docker_service ([#105](https://github.com/kreuzwerker/terraform-provider-docker/issues/105))
|
||||
* cleans readme
|
||||
* adds coc and contributing
|
||||
|
||||
### Feat
|
||||
|
||||
* supports Docker plugin ([#35](https://github.com/kreuzwerker/terraform-provider-docker/issues/35))
|
||||
* support max replicas of Docker Service Task Spec ([#112](https://github.com/kreuzwerker/terraform-provider-docker/issues/112))
|
||||
* add force_remove option to r/image ([#104](https://github.com/kreuzwerker/terraform-provider-docker/issues/104))
|
||||
* add local semantic commit validation ([#99](https://github.com/kreuzwerker/terraform-provider-docker/issues/99))
|
||||
* add ability to lint/check of links in documentation locally ([#98](https://github.com/kreuzwerker/terraform-provider-docker/issues/98))
|
||||
|
||||
### Fix
|
||||
|
||||
* set "latest" to tag when tag isn't specified ([#117](https://github.com/kreuzwerker/terraform-provider-docker/issues/117))
|
||||
* image label for workflows
|
||||
* remove all azure cps
|
||||
|
||||
### Pull Requests
|
||||
|
||||
* Merge pull request [#38](https://github.com/kreuzwerker/terraform-provider-docker/issues/38) from kreuzwerker/ci-ubuntu2004-workflow
|
||||
* Merge pull request [#36](https://github.com/kreuzwerker/terraform-provider-docker/issues/36) from kreuzwerker/chore-gh-issue-tpl
|
||||
|
||||
|
||||
<a name="v2.9.0"></a>
|
||||
## [v2.9.0](https://github.com/kreuzwerker/terraform-provider-docker/compare/v2.8.0...v2.9.0) (2020-12-25)
|
||||
|
||||
### Chore
|
||||
|
||||
* updates changelog for 2.9.0
|
||||
* update changelog 2.8.0 release date
|
||||
* introduces golangci-lint ([#32](https://github.com/kreuzwerker/terraform-provider-docker/issues/32))
|
||||
* fix changelog links
|
||||
|
||||
### Ci
|
||||
|
||||
* add gofmt's '-s' option
|
||||
* remove unneeded make tasks
|
||||
* fix test of website
|
||||
|
||||
### Doc
|
||||
|
||||
* devices is a block, not a boolean
|
||||
|
||||
### Feat
|
||||
|
||||
* adds support for OCI manifests ([#316](https://github.com/kreuzwerker/terraform-provider-docker/issues/316))
|
||||
* adds security_opts to container config. ([#308](https://github.com/kreuzwerker/terraform-provider-docker/issues/308))
|
||||
* adds support for init process injection for containers. ([#300](https://github.com/kreuzwerker/terraform-provider-docker/issues/300))
|
||||
|
||||
### Fix
|
||||
|
||||
* changing mounts requires ForceNew ([#314](https://github.com/kreuzwerker/terraform-provider-docker/issues/314))
|
||||
* allow healthcheck to be computed as container can specify ([#312](https://github.com/kreuzwerker/terraform-provider-docker/issues/312))
|
||||
* treat null user as a no-op ([#318](https://github.com/kreuzwerker/terraform-provider-docker/issues/318))
|
||||
* workdir null behavior ([#320](https://github.com/kreuzwerker/terraform-provider-docker/issues/320))
|
||||
|
||||
### Style
|
||||
|
||||
* format with gofumpt
|
||||
|
||||
### Pull Requests
|
||||
|
||||
* Merge pull request [#33](https://github.com/kreuzwerker/terraform-provider-docker/issues/33) from brandonros/patch-1
|
||||
* Merge pull request [#11](https://github.com/kreuzwerker/terraform-provider-docker/issues/11) from suzuki-shunsuke/format-with-gofumpt
|
||||
* Merge pull request [#26](https://github.com/kreuzwerker/terraform-provider-docker/issues/26) from kreuzwerker/ci/fix-website-ci
|
||||
* Merge pull request [#8](https://github.com/kreuzwerker/terraform-provider-docker/issues/8) from dubo-dubon-duponey/patch1
|
||||
|
||||
|
||||
<a name="v2.8.0"></a>
|
||||
## v2.8.0 (2020-11-11)
|
||||
|
||||
### Chore
|
||||
|
||||
* updates changelog for 2.8.0
|
||||
* removes travis.yml
|
||||
* deactivates travis
|
||||
* removes vendor dir ([#298](https://github.com/kreuzwerker/terraform-provider-docker/issues/298))
|
||||
* bump go 115 ([#297](https://github.com/kreuzwerker/terraform-provider-docker/issues/297))
|
||||
* documentation updates ([#286](https://github.com/kreuzwerker/terraform-provider-docker/issues/286))
|
||||
* updates link syntax ([#287](https://github.com/kreuzwerker/terraform-provider-docker/issues/287))
|
||||
* fix typo ([#292](https://github.com/kreuzwerker/terraform-provider-docker/issues/292))
|
||||
|
||||
### Ci
|
||||
|
||||
* reactivats all workflows
|
||||
* fix website
|
||||
* only run website workflow
|
||||
* exports gopath manually
|
||||
* fix absolute gopath for website
|
||||
* make website check separate workflow
|
||||
* fix workflow names
|
||||
* adds website test to unit test
|
||||
* adds acc test
|
||||
* adds compile
|
||||
* adds go version and goproxy env
|
||||
* enables unit tests for master branch
|
||||
* adds unit test workflow
|
||||
* adds goreleaser and gh action
|
||||
* bumps docker and ubuntu versions ([#241](https://github.com/kreuzwerker/terraform-provider-docker/issues/241))
|
||||
* removes debug option from acc tests
|
||||
* skips test which is flaky only on travis
|
||||
|
||||
### Deps
|
||||
|
||||
* github.com/hashicorp/terraform[@sdk](https://github.com/sdk)-v0.11-with-go-modules Updated via: go get github.com/hashicorp/terraform[@sdk](https://github.com/sdk)-v0.11-with-go-modules and go mod tidy
|
||||
* use go modules for dep mgmt run go mod tidy remove govendor from makefile and travis config set appropriate env vars for go modules
|
||||
|
||||
### Docker
|
||||
|
||||
* improve validation of runtime constraints
|
||||
|
||||
### Docs
|
||||
|
||||
* update container.html.markdown ([#278](https://github.com/kreuzwerker/terraform-provider-docker/issues/278))
|
||||
* update service.html.markdown ([#281](https://github.com/kreuzwerker/terraform-provider-docker/issues/281))
|
||||
* update restart_policy for service. Closes [#228](https://github.com/kreuzwerker/terraform-provider-docker/issues/228)
|
||||
* adds new label structure. Closes [#214](https://github.com/kreuzwerker/terraform-provider-docker/issues/214)
|
||||
* update anchors with -1 suffix ([#178](https://github.com/kreuzwerker/terraform-provider-docker/issues/178))
|
||||
* Fix misspelled words
|
||||
* Fix exported attribute name in docker_registry_image
|
||||
* Fix example for docker_registry_image ([#8308](https://github.com/kreuzwerker/terraform-provider-docker/issues/8308))
|
||||
* provider/docker - network settings attrs
|
||||
|
||||
### Feat
|
||||
|
||||
* conditionally adding port binding ([#293](https://github.com/kreuzwerker/terraform-provider-docker/issues/293)).
|
||||
* adds docker Image build feature ([#283](https://github.com/kreuzwerker/terraform-provider-docker/issues/283))
|
||||
* adds complete support for Docker credential helpers ([#253](https://github.com/kreuzwerker/terraform-provider-docker/issues/253))
|
||||
* Expose IPv6 properties as attributes
|
||||
* allow use of source file instead of content / content_base64 ([#240](https://github.com/kreuzwerker/terraform-provider-docker/issues/240))
|
||||
* supports to update docker_container ([#236](https://github.com/kreuzwerker/terraform-provider-docker/issues/236))
|
||||
* support to import some docker_container's attributes ([#234](https://github.com/kreuzwerker/terraform-provider-docker/issues/234))
|
||||
* adds config file content as plain string ([#232](https://github.com/kreuzwerker/terraform-provider-docker/issues/232))
|
||||
* make UID, GID, & mode for secrets and configs configurable ([#231](https://github.com/kreuzwerker/terraform-provider-docker/issues/231))
|
||||
* adds import for resources ([#196](https://github.com/kreuzwerker/terraform-provider-docker/issues/196))
|
||||
* add container ipc mode. ([#182](https://github.com/kreuzwerker/terraform-provider-docker/issues/182))
|
||||
* adds container working dir ([#181](https://github.com/kreuzwerker/terraform-provider-docker/issues/181))
|
||||
|
||||
### Fix
|
||||
|
||||
* ignores 'remove_volumes' on container import
|
||||
* duplicated buildImage function
|
||||
* port objects with the same internal port but different protocol trigger recreation of container ([#274](https://github.com/kreuzwerker/terraform-provider-docker/issues/274))
|
||||
* panic to migrate schema of docker_container from v1 to v2 ([#271](https://github.com/kreuzwerker/terraform-provider-docker/issues/271)). Closes [#264](https://github.com/kreuzwerker/terraform-provider-docker/issues/264)
|
||||
* pins docker registry for tests to v2.7.0
|
||||
* prevent force recreate of container about some attributes ([#269](https://github.com/kreuzwerker/terraform-provider-docker/issues/269))
|
||||
* service endpoint spec flattening
|
||||
* corrects IPAM config read on the data provider ([#229](https://github.com/kreuzwerker/terraform-provider-docker/issues/229))
|
||||
* replica to 0 in current schema. Closes [#221](https://github.com/kreuzwerker/terraform-provider-docker/issues/221)
|
||||
* label for network and volume after improt
|
||||
* binary upload as base 64 content ([#194](https://github.com/kreuzwerker/terraform-provider-docker/issues/194))
|
||||
* service env truncation for multiple delimiters ([#193](https://github.com/kreuzwerker/terraform-provider-docker/issues/193))
|
||||
* destroy_grace_seconds are considered ([#179](https://github.com/kreuzwerker/terraform-provider-docker/issues/179))
|
||||
|
||||
### Make
|
||||
|
||||
* Add website + website-test targets
|
||||
|
||||
### Provider
|
||||
|
||||
* Ensured Go 1.11 in TravisCI and README provider: Run go fix provider: Run go fmt provider: Encode go version 1.11.5 to .go-version file
|
||||
* Require Go 1.11 in TravisCI and README provider: Run go fix provider: Run go fmt
|
||||
|
||||
### Tests
|
||||
|
||||
* Skip test if swap limit isn't available ([#136](https://github.com/kreuzwerker/terraform-provider-docker/issues/136))
|
||||
* Simplify Dockerfile(s)
|
||||
|
||||
### Vendor
|
||||
|
||||
* github.com/hashicorp/terraform/...[@v0](https://github.com/v0).10.0
|
||||
* Ignore github.com/hashicorp/terraform/backend
|
||||
|
||||
### Website
|
||||
|
||||
* Docs sweep for lists & maps
|
||||
* note on docker
|
||||
* docker docs
|
||||
|
||||
### Pull Requests
|
||||
|
||||
* Merge pull request [#134](https://github.com/kreuzwerker/terraform-provider-docker/issues/134) from terraform-providers/go-modules-2019-03-01
|
||||
* Merge pull request [#135](https://github.com/kreuzwerker/terraform-provider-docker/issues/135) from terraform-providers/t-simplify-dockerfile
|
||||
* Merge pull request [#47](https://github.com/kreuzwerker/terraform-provider-docker/issues/47) from captn3m0/docker-link-warning
|
||||
* Merge pull request [#60](https://github.com/kreuzwerker/terraform-provider-docker/issues/60) from terraform-providers/f-make-website
|
||||
* Merge pull request [#23](https://github.com/kreuzwerker/terraform-provider-docker/issues/23) from JamesLaverack/patch-1
|
||||
* Merge pull request [#18](https://github.com/kreuzwerker/terraform-provider-docker/issues/18) from terraform-providers/vendor-tf-0.10
|
||||
* Merge pull request [#5046](https://github.com/kreuzwerker/terraform-provider-docker/issues/5046) from tpounds/use-built-in-schema-string-hash
|
||||
* Merge pull request [#3761](https://github.com/kreuzwerker/terraform-provider-docker/issues/3761) from ryane/f-provider-docker-improvements
|
||||
* Merge pull request [#3383](https://github.com/kreuzwerker/terraform-provider-docker/issues/3383) from apparentlymart/docker-container-command-docs
|
||||
* Merge pull request [#1564](https://github.com/kreuzwerker/terraform-provider-docker/issues/1564) from nickryand/docker_links
|
||||
|
||||
@@ -1,373 +0,0 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
@@ -1,116 +0,0 @@
|
||||
<a href="https://docker.com">
|
||||
<img src="https://raw.githubusercontent.com/kreuzwerker/terraform-provider-docker/master/assets/docker-logo.png" alt="Docker logo" title="Docker" align="right" height="100" />
|
||||
</a>
|
||||
<a href="https://terraform.io">
|
||||
<img src="https://raw.githubusercontent.com/kreuzwerker/terraform-provider-docker/master/assets/terraform-logo.png" alt="Terraform logo" title="Terraform" align="right" height="100" />
|
||||
</a>
|
||||
<a href="https://kreuzwerker.de">
|
||||
<img src="https://raw.githubusercontent.com/kreuzwerker/terraform-provider-docker/master/assets/xw-logo.png" alt="Kreuzwerker logo" title="Kreuzwerker" align="right" height="100" />
|
||||
</a>
|
||||
|
||||
# Terraform Provider for Docker
|
||||
|
||||
[](https://github.com/kreuzwerker/terraform-provider-docker/releases)
|
||||
[](https://registry.terraform.io/providers/kreuzwerker/docker)
|
||||
[](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs)
|
||||
[](https://github.com/kreuzwerker/terraform-provider-docker/blob/main/LICENSE)
|
||||
[](https://github.com/kreuzwerker/terraform-provider-docker/actions)
|
||||
[](https://github.com/kreuzwerker/terraform-provider-docker/actions)
|
||||
[](https://goreportcard.com/report/github.com/kreuzwerker/terraform-provider-docker)
|
||||
|
||||
- Website: https://www.terraform.io
|
||||
- Provider: [kreuzwerker/docker](https://registry.terraform.io/providers/kreuzwerker/docker/latest)
|
||||
- Slack: [@gophers/terraform-provider-docker](https://gophers.slack.com/archives/C01G9TN5V36)
|
||||
|
||||
## Requirements
|
||||
- [Terraform](https://www.terraform.io/downloads.html) >=0.12.x
|
||||
- [Go](https://golang.org/doc/install) 1.18.x (to build the provider plugin)
|
||||
|
||||
## Building The Provider
|
||||
|
||||
```sh
|
||||
$ git clone git@github.com:kreuzwerker/terraform-provider-docker
|
||||
$ make build
|
||||
```
|
||||
|
||||
## Example usage
|
||||
|
||||
Take a look at the examples in the [documentation](https://registry.terraform.io/providers/kreuzwerker/docker/2.25.0/docs) of the registry
|
||||
or use the following example:
|
||||
|
||||
|
||||
```hcl
|
||||
# Set the required provider and versions
|
||||
terraform {
|
||||
required_providers {
|
||||
# We recommend pinning to the specific version of the Docker Provider you're using
|
||||
# since new versions are released frequently
|
||||
docker = {
|
||||
source = "kreuzwerker/docker"
|
||||
version = "2.25.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Configure the docker provider
|
||||
provider "docker" {
|
||||
}
|
||||
|
||||
# Create a docker image resource
|
||||
# -> docker pull nginx:latest
|
||||
resource "docker_image" "nginx" {
|
||||
name = "nginx:latest"
|
||||
keep_locally = true
|
||||
}
|
||||
|
||||
# Create a docker container resource
|
||||
# -> same as 'docker run --name nginx -p8080:80 -d nginx:latest'
|
||||
resource "docker_container" "nginx" {
|
||||
name = "nginx"
|
||||
image = docker_image.nginx.image_id
|
||||
|
||||
ports {
|
||||
external = 8080
|
||||
internal = 80
|
||||
}
|
||||
}
|
||||
|
||||
# Or create a service resource
|
||||
# -> same as 'docker service create -d -p 8081:80 --name nginx-service --replicas 2 nginx:latest'
|
||||
resource "docker_service" "nginx_service" {
|
||||
name = "nginx-service"
|
||||
task_spec {
|
||||
container_spec {
|
||||
image = docker_image.nginx.repo_digest
|
||||
}
|
||||
}
|
||||
|
||||
mode {
|
||||
replicated {
|
||||
replicas = 2
|
||||
}
|
||||
}
|
||||
|
||||
endpoint_spec {
|
||||
ports {
|
||||
published_port = 8081
|
||||
target_port = 80
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
The Terraform Docker Provider is the work of many of contributors. We appreciate your help!
|
||||
|
||||
To contribute, please read the contribution guidelines: [Contributing to Terraform - Docker Provider](CONTRIBUTING.md)
|
||||
|
||||
## License
|
||||
|
||||
The Terraform Provider Docker is available to everyone under the terms of the Mozilla Public License Version 2.0. [Take a look the LICENSE file](LICENSE).
|
||||
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
[](https://starchart.cc/kreuzwerker/terraform-provider-docker)
|
||||
Binary file not shown.
@@ -1,92 +0,0 @@
|
||||
License text copyright (c) 2020 MariaDB Corporation Ab, All Rights Reserved.
|
||||
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: HashiCorp, Inc.
|
||||
Licensed Work: Terraform Version 1.6.0 or later. The Licensed Work is (c) 2024
|
||||
HashiCorp, Inc.
|
||||
Additional Use Grant: You may make production use of the Licensed Work, provided
|
||||
Your use does not include offering the Licensed Work to third
|
||||
parties on a hosted or embedded basis in order to compete with
|
||||
HashiCorp's paid version(s) of the Licensed Work. For purposes
|
||||
of this license:
|
||||
|
||||
A "competitive offering" is a Product that is offered to third
|
||||
parties on a paid basis, including through paid support
|
||||
arrangements, that significantly overlaps with the capabilities
|
||||
of HashiCorp's paid version(s) of the Licensed Work. If Your
|
||||
Product is not a competitive offering when You first make it
|
||||
generally available, it will not become a competitive offering
|
||||
later due to HashiCorp releasing a new version of the Licensed
|
||||
Work with additional capabilities. In addition, Products that
|
||||
are not provided on a paid basis are not competitive.
|
||||
|
||||
"Product" means software that is offered to end users to manage
|
||||
in their own environments or offered as a service on a hosted
|
||||
basis.
|
||||
|
||||
"Embedded" means including the source code or executable code
|
||||
from the Licensed Work in a competitive offering. "Embedded"
|
||||
also means packaging the competitive offering in such a way
|
||||
that the Licensed Work must be accessed or downloaded for the
|
||||
competitive offering to operate.
|
||||
|
||||
Hosting or using the Licensed Work(s) for internal purposes
|
||||
within an organization is not considered a competitive
|
||||
offering. HashiCorp considers your organization to include all
|
||||
of your affiliates under common control.
|
||||
|
||||
For binding interpretive guidance on using HashiCorp products
|
||||
under the Business Source License, please visit our FAQ.
|
||||
(https://www.hashicorp.com/license-faq)
|
||||
Change Date: Four years from the date the Licensed Work is published.
|
||||
Change License: MPL 2.0
|
||||
|
||||
For information about alternative licensing arrangements for the Licensed Work,
|
||||
please contact licensing@hashicorp.com.
|
||||
|
||||
Notice
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
62
tf/README.md
62
tf/README.md
@@ -57,14 +57,7 @@ tf/
|
||||
├── services.tf # Database containers (PostgreSQL, Redis, Qdrant)
|
||||
├── apps.tf # Coder applications for service access
|
||||
├── scripts.tf # AI tools installation and configuration
|
||||
├── outputs.tf # Workspace information exports
|
||||
└── scripts/ # External shell scripts (prevents CRLF issues)
|
||||
├── workspace-setup.sh # Main workspace initialization
|
||||
├── claude-install.sh # Claude Code CLI installation
|
||||
├── cursor-setup.sh # Cursor IDE configuration
|
||||
├── windsurf-setup.sh # Windsurf IDE configuration
|
||||
├── dev-tools.sh # Development tools installation
|
||||
└── git-hooks.sh # Git hooks and metadata setup
|
||||
└── outputs.tf # Workspace information exports
|
||||
```
|
||||
|
||||
## 🛠️ Included Services & Tools
|
||||
@@ -114,45 +107,6 @@ fastapi, uvicorn, requests, pandas, numpy
|
||||
psycopg2-binary, redis, qdrant-client, python-dotenv
|
||||
```
|
||||
|
||||
## 🗂️ Script Architecture
|
||||
|
||||
### External Shell Scripts Approach
|
||||
|
||||
This configuration uses **external shell scripts** instead of Terraform heredocs for better maintainability and cross-platform compatibility:
|
||||
|
||||
**Benefits:**
|
||||
- ✅ **No CRLF Issues** - Shell scripts handle line endings correctly
|
||||
- ✅ **Version Control Friendly** - Better diffs and change tracking
|
||||
- ✅ **IDE Support** - Syntax highlighting and linting for shell scripts
|
||||
- ✅ **Testable** - Scripts can be tested independently of Terraform
|
||||
- ✅ **Maintainable** - Easier to read and modify than embedded heredocs
|
||||
|
||||
### Script Files
|
||||
|
||||
| Script | Purpose | When It Runs |
|
||||
|--------|---------|--------------|
|
||||
| `workspace-setup.sh` | Main environment initialization | Workspace startup |
|
||||
| `claude-install.sh` | Claude Code CLI installation | If AI tools enabled |
|
||||
| `cursor-setup.sh` | Cursor IDE configuration | If AI tools enabled |
|
||||
| `windsurf-setup.sh` | Windsurf IDE configuration | If AI tools enabled |
|
||||
| `dev-tools.sh` | Additional development tools | Always |
|
||||
| `git-hooks.sh` | Git hooks and metadata capture | Always |
|
||||
|
||||
### Testing Scripts Independently
|
||||
|
||||
You can test individual scripts before deployment:
|
||||
|
||||
```bash
|
||||
# Test workspace setup (as root in container)
|
||||
sudo bash scripts/workspace-setup.sh
|
||||
|
||||
# Test Claude Code installation (as coder user)
|
||||
sudo -u coder bash scripts/claude-install.sh
|
||||
|
||||
# Test development tools installation
|
||||
sudo bash scripts/dev-tools.sh
|
||||
```
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
@@ -178,23 +132,13 @@ CODER_WILDCARD_ACCESS_URL=*.dev.lab
|
||||
cd tf/
|
||||
```
|
||||
|
||||
2. **Fix Line Endings (Important for Windows/WSL users)**
|
||||
```bash
|
||||
# Convert all files to Unix line endings
|
||||
# This prevents bash execution errors in containers
|
||||
find . -name "*.tf" -exec dos2unix {} \;
|
||||
find . -name "*.sh" -exec dos2unix {} \;
|
||||
```
|
||||
|
||||
**Note**: This configuration uses external shell scripts (in `scripts/` directory) instead of Terraform heredocs to prevent CRLF line ending issues when copying from Windows environments. The shell scripts are more maintainable and testable than embedded heredocs.
|
||||
|
||||
3. **Review Configuration**
|
||||
2. **Review Configuration**
|
||||
```bash
|
||||
# Edit terraform.tfvars to match your needs
|
||||
vim terraform.tfvars
|
||||
```
|
||||
|
||||
4. **Deploy Infrastructure**
|
||||
3. **Deploy Infrastructure**
|
||||
```bash
|
||||
terraform init
|
||||
terraform plan
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "🤖 Installing Claude Code CLI..."
|
||||
|
||||
# Check if already installed
|
||||
if command -v claude >/dev/null 2>&1; then
|
||||
echo "✅ Claude Code already installed"
|
||||
claude --version || echo "Claude Code version check failed"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Ensure npm is available
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
|
||||
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "❌ npm not found - Node.js installation required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📥 Installing Claude Code CLI via npm..."
|
||||
# Use correct Claude Code package name
|
||||
npm install -g @anthropic-ai/claude-code@latest || {
|
||||
echo "⚠️ Official Claude package not available, trying alternatives..."
|
||||
npm install -g @anthropic-ai/claude-cli@latest || npm install -g claude-ai-cli || echo "❌ All Claude installations failed"
|
||||
}
|
||||
|
||||
# Verify installation
|
||||
if command -v claude >/dev/null 2>&1; then
|
||||
echo "✅ Claude Code installed successfully!"
|
||||
echo "🔧 Run 'claude auth login' to authenticate"
|
||||
echo "💡 Use 'claude chat' for interactive assistance"
|
||||
echo "💡 Use 'claude edit <file>' to edit files with AI"
|
||||
|
||||
# Create helper script
|
||||
mkdir -p /home/coder/bin
|
||||
cat > /home/coder/bin/claude-help << 'CLAUDE_HELP_END'
|
||||
#!/bin/bash
|
||||
echo "🤖 Claude Code AI Assistant"
|
||||
echo "=========================="
|
||||
echo ""
|
||||
echo "Authentication:"
|
||||
echo " claude auth login # Authenticate with Anthropic"
|
||||
echo " claude auth logout # Sign out"
|
||||
echo " claude auth whoami # Check current user"
|
||||
echo ""
|
||||
echo "Interactive Chat:"
|
||||
echo " claude chat # Start interactive session"
|
||||
echo " claude chat 'question' # Single question"
|
||||
echo ""
|
||||
echo "File Editing:"
|
||||
echo " claude edit file.py # AI-powered file editing"
|
||||
echo " claude edit --help # Edit command options"
|
||||
echo ""
|
||||
echo "Code Analysis:"
|
||||
echo " claude analyze . # Analyze current directory"
|
||||
echo " claude review file.py # Code review"
|
||||
echo ""
|
||||
echo "Project Operations:"
|
||||
echo " claude init # Initialize Claude in project"
|
||||
echo " claude status # Show project status"
|
||||
echo ""
|
||||
echo "💡 For full documentation: https://docs.anthropic.com/claude/docs"
|
||||
CLAUDE_HELP_END
|
||||
chmod +x /home/coder/bin/claude-help
|
||||
|
||||
echo "💡 Run 'claude-help' for quick reference"
|
||||
else
|
||||
echo "❌ Claude Code installation failed"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,189 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Set proper locale for emoji and UTF-8 support
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
|
||||
echo "🎯 Setting up Cursor IDE support..."
|
||||
|
||||
# Create Cursor configuration directories
|
||||
mkdir -p /home/coder/.cursor-server/data/User
|
||||
mkdir -p /home/coder/.cursor-server/extensions
|
||||
|
||||
# Create optimized Cursor settings
|
||||
cat > /home/coder/.cursor-server/data/User/settings.json << 'CURSOR_SETTINGS_END'
|
||||
{
|
||||
"workbench.colorTheme": "Dark+ (default dark)",
|
||||
"editor.fontSize": 14,
|
||||
"editor.tabSize": 2,
|
||||
"editor.insertSpaces": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": true,
|
||||
"source.organizeImports": true
|
||||
},
|
||||
"files.autoSave": "afterDelay",
|
||||
"files.autoSaveDelay": 1000,
|
||||
"terminal.integrated.fontSize": 13,
|
||||
"git.enableSmartCommit": true,
|
||||
"git.confirmSync": false,
|
||||
"python.defaultInterpreterPath": "/home/coder/.venv/bin/python",
|
||||
"python.linting.enabled": true,
|
||||
"python.linting.pylintEnabled": false,
|
||||
"python.linting.flake8Enabled": true,
|
||||
"typescript.preferences.includePackageJsonAutoImports": "auto",
|
||||
"javascript.preferences.includePackageJsonAutoImports": "auto",
|
||||
"cursor.chat.showInEditorContextMenu": true,
|
||||
"cursor.chat.alwaysShowInEditorContextMenu": true,
|
||||
"cursor.general.enableWindowAIFeatures": true
|
||||
}
|
||||
CURSOR_SETTINGS_END
|
||||
|
||||
# Create development tasks configuration
|
||||
mkdir -p /home/coder/.cursor-server/data/User
|
||||
cat > /home/coder/.cursor-server/data/User/tasks.json << 'CURSOR_TASKS_END'
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Dev Server",
|
||||
"type": "shell",
|
||||
"command": "npm run dev",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Python Dev Server",
|
||||
"type": "shell",
|
||||
"command": "uvicorn main:app --reload --host 0.0.0.0 --port 8000",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Install Dependencies",
|
||||
"type": "shell",
|
||||
"command": "npm install",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Python Install",
|
||||
"type": "shell",
|
||||
"command": "uv pip install -r requirements.txt",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
CURSOR_TASKS_END
|
||||
|
||||
# Create useful code snippets
|
||||
mkdir -p /home/coder/.cursor-server/data/User/snippets
|
||||
cat > /home/coder/.cursor-server/data/User/snippets/global.code-snippets << 'CURSOR_SNIPPETS_END'
|
||||
{
|
||||
"FastAPI Basic App": {
|
||||
"prefix": "fastapi-app",
|
||||
"body": [
|
||||
"from fastapi import FastAPI",
|
||||
"from fastapi.middleware.cors import CORSMiddleware",
|
||||
"",
|
||||
"app = FastAPI(title=\"${1:My API}\", version=\"0.1.0\")",
|
||||
"",
|
||||
"app.add_middleware(",
|
||||
" CORSMiddleware,",
|
||||
" allow_origins=[\"*\"],",
|
||||
" allow_credentials=True,",
|
||||
" allow_methods=[\"*\"],",
|
||||
" allow_headers=[\"*\"],",
|
||||
")",
|
||||
"",
|
||||
"@app.get(\"/\")",
|
||||
"async def root():",
|
||||
" return {\"message\": \"${2:Hello World}\"}",
|
||||
"",
|
||||
"@app.get(\"/health\")",
|
||||
"async def health():",
|
||||
" return {\"status\": \"healthy\"}",
|
||||
"",
|
||||
"if __name__ == \"__main__\":",
|
||||
" import uvicorn",
|
||||
" uvicorn.run(app, host=\"0.0.0.0\", port=8000)"
|
||||
],
|
||||
"description": "FastAPI basic application template"
|
||||
},
|
||||
"Next.js API Route": {
|
||||
"prefix": "nextapi",
|
||||
"body": [
|
||||
"import { NextRequest, NextResponse } from 'next/server';",
|
||||
"",
|
||||
"export async function ${1:GET}(request: NextRequest) {",
|
||||
" try {",
|
||||
" // Your API logic here",
|
||||
" return NextResponse.json({ message: '${2:Success}' });",
|
||||
" } catch (error) {",
|
||||
" return NextResponse.json(",
|
||||
" { error: 'Internal Server Error' },",
|
||||
" { status: 500 }",
|
||||
" );",
|
||||
" }",
|
||||
"}"
|
||||
],
|
||||
"description": "Next.js API route template"
|
||||
},
|
||||
"Database Connection": {
|
||||
"prefix": "db-connect",
|
||||
"body": [
|
||||
"import os",
|
||||
"from sqlalchemy import create_engine",
|
||||
"from sqlalchemy.orm import sessionmaker",
|
||||
"",
|
||||
"DATABASE_URL = os.getenv(",
|
||||
" \"POSTGRES_URL\",",
|
||||
" \"postgresql://postgres:password@localhost:5432/postgres\"",
|
||||
")",
|
||||
"",
|
||||
"engine = create_engine(DATABASE_URL)",
|
||||
"SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)",
|
||||
"",
|
||||
"def get_db():",
|
||||
" db = SessionLocal()",
|
||||
" try:",
|
||||
" yield db",
|
||||
" finally:",
|
||||
" db.close()"
|
||||
],
|
||||
"description": "Database connection setup"
|
||||
}
|
||||
}
|
||||
CURSOR_SNIPPETS_END
|
||||
|
||||
# Set proper ownership
|
||||
if id -u coder >/dev/null 2>&1; then
|
||||
chown -R coder:coder /home/coder/.cursor-server
|
||||
fi
|
||||
|
||||
echo "✅ Cursor IDE support configured"
|
||||
echo "🎯 Cursor will use optimized settings for this development environment"
|
||||
@@ -1,174 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Set proper locale for emoji and UTF-8 support
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
|
||||
echo "🔧 Installing development extensions and tools..."
|
||||
|
||||
# Function to safely install packages with error handling
|
||||
safe_install() {
|
||||
local package_name="$1"
|
||||
local install_command="$2"
|
||||
local fallback_command="$3"
|
||||
|
||||
echo "📦 Installing $package_name..."
|
||||
if eval "$install_command"; then
|
||||
echo "✅ $package_name installed successfully"
|
||||
return 0
|
||||
else
|
||||
echo "⚠️ $package_name installation failed"
|
||||
if [ -n "$fallback_command" ]; then
|
||||
echo "🔄 Trying fallback installation..."
|
||||
eval "$fallback_command" || echo "❌ Fallback also failed for $package_name"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Ensure we're running as root for system packages
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "This script needs to run as root for system package installation"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📦 Installing additional CLI tools..."
|
||||
|
||||
# Ensure curl is available first
|
||||
type -p curl >/dev/null || (apt-get update && apt-get install curl -y)
|
||||
|
||||
# Function to install various development tools
|
||||
install_development_tools() {
|
||||
echo "🛠️ Installing development utilities..."
|
||||
|
||||
# GitHub CLI
|
||||
if ! command -v gh &> /dev/null; then
|
||||
echo "📥 Installing GitHub CLI..."
|
||||
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
||||
chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
||||
apt-get update
|
||||
apt-get install gh -y
|
||||
fi
|
||||
|
||||
# Docker Compose (if not already installed)
|
||||
if ! command -v docker-compose &> /dev/null; then
|
||||
echo "🐳 Installing Docker Compose..."
|
||||
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
fi
|
||||
|
||||
# Lazygit for better git UI
|
||||
if ! command -v lazygit &> /dev/null; then
|
||||
echo "🌿 Installing lazygit..."
|
||||
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v*([^"]+)".*/\1/')
|
||||
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
|
||||
tar xf lazygit.tar.gz lazygit
|
||||
install lazygit /usr/local/bin
|
||||
rm lazygit.tar.gz lazygit
|
||||
fi
|
||||
|
||||
# btop for system monitoring (fallback to htop if btop unavailable)
|
||||
if ! command -v btop &> /dev/null; then
|
||||
echo "📊 Installing btop..."
|
||||
if apt-get install btop -y 2>/dev/null; then
|
||||
echo "✅ btop installed successfully"
|
||||
else
|
||||
echo "⚠️ btop not available, installing htop as fallback..."
|
||||
apt-get install htop -y
|
||||
fi
|
||||
fi
|
||||
|
||||
# fd-find for better file searching
|
||||
if ! command -v fd &> /dev/null; then
|
||||
echo "🔍 Installing fd-find..."
|
||||
apt-get install fd-find -y
|
||||
# Create symlink for easier usage
|
||||
ln -sf /usr/bin/fdfind /usr/local/bin/fd
|
||||
fi
|
||||
|
||||
# ripgrep for better text searching
|
||||
if ! command -v rg &> /dev/null; then
|
||||
echo "🔎 Installing ripgrep..."
|
||||
apt-get install ripgrep -y
|
||||
fi
|
||||
|
||||
# bat for better cat with syntax highlighting
|
||||
if ! command -v bat &> /dev/null; then
|
||||
echo "🦇 Installing bat..."
|
||||
apt-get install bat -y
|
||||
# Create symlink for easier usage
|
||||
ln -sf /usr/bin/batcat /usr/local/bin/bat
|
||||
fi
|
||||
|
||||
# eza for better ls (modern replacement for exa)
|
||||
if ! command -v eza &> /dev/null; then
|
||||
echo "📁 Installing eza..."
|
||||
if curl -L "https://github.com/eza-community/eza/releases/latest/download/eza_x86_64-unknown-linux-gnu.tar.gz" | tar xz -C /usr/local/bin 2>/dev/null; then
|
||||
echo "✅ eza installed successfully"
|
||||
else
|
||||
echo "⚠️ eza installation failed, skipping..."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Install all development tools
|
||||
install_development_tools
|
||||
|
||||
# Switch to coder user for user-specific installations
|
||||
echo "👤 Setting up user-specific tools..."
|
||||
|
||||
# Check if coder user exists, if not use the first non-root user or create coder user
|
||||
CODER_USER=""
|
||||
if id coder >/dev/null 2>&1; then
|
||||
CODER_USER="coder"
|
||||
else
|
||||
# Try to find existing non-root user
|
||||
EXISTING_USER=$(getent passwd | awk -F: '$3 >= 1000 && $3 != 65534 {print $1; exit}')
|
||||
if [ -n "$EXISTING_USER" ]; then
|
||||
CODER_USER="$EXISTING_USER"
|
||||
echo "🔄 Using existing user: $CODER_USER"
|
||||
else
|
||||
# Create coder user if no suitable user exists
|
||||
echo "👤 Creating coder user..."
|
||||
useradd -m -s /bin/bash coder
|
||||
CODER_USER="coder"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "👤 Setting up tools for user: $CODER_USER"
|
||||
su - "$CODER_USER" << 'USER_SETUP_END'
|
||||
# Add useful aliases to .bashrc if not already present
|
||||
if ! grep -q "# Development tools aliases" ~/.bashrc; then
|
||||
cat >> ~/.bashrc << 'ALIASES_END'
|
||||
|
||||
# Development tools aliases
|
||||
alias cat='bat'
|
||||
alias ls='eza'
|
||||
alias ll='eza -la'
|
||||
alias la='eza -la'
|
||||
alias find='fd'
|
||||
alias grep='rg'
|
||||
alias git-ui='lazygit'
|
||||
alias top='btop'
|
||||
|
||||
ALIASES_END
|
||||
fi
|
||||
|
||||
# Install tldr for better man pages
|
||||
if ! command -v tldr &> /dev/null; then
|
||||
npm install -g tldr
|
||||
fi
|
||||
|
||||
# Install fkill for better process management
|
||||
if ! command -v fkill &> /dev/null; then
|
||||
npm install -g fkill-cli
|
||||
fi
|
||||
|
||||
echo "✅ Development tools installed and configured!"
|
||||
USER_SETUP_END
|
||||
|
||||
echo "🎉 All development tools installed successfully!"
|
||||
echo "💡 Available tools: gh, docker-compose, lazygit, btop, fd, rg, bat, eza, tldr, fkill"
|
||||
echo "💡 Aliases configured: cat→bat, ls→eza, find→fd, grep→rg, git-ui→lazygit, top→btop"
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "📝 Setting up Git hooks and metadata capture..."
|
||||
|
||||
# Ensure we're in the workspaces directory
|
||||
cd /workspaces
|
||||
|
||||
# Initialize git repository if it doesn't exist
|
||||
if [ ! -d ".git" ]; then
|
||||
echo "🔧 Initializing git repository..."
|
||||
git init
|
||||
fi
|
||||
|
||||
# Create .git/hooks directory if it doesn't exist
|
||||
mkdir -p .git/hooks
|
||||
|
||||
# Create post-commit hook for metadata capture
|
||||
cat > .git/hooks/post-commit << 'POST_COMMIT_END'
|
||||
#!/bin/bash
|
||||
# Post-commit hook to capture git metadata
|
||||
echo "📝 Capturing git metadata after commit..."
|
||||
|
||||
# Ensure metadata directory exists
|
||||
mkdir -p /tmp/git-metadata
|
||||
|
||||
# Capture current git state
|
||||
git branch --show-current > /tmp/git-metadata/current-branch 2>/dev/null || echo "main" > /tmp/git-metadata/current-branch
|
||||
git rev-parse HEAD > /tmp/git-metadata/commit-hash 2>/dev/null || echo "no-commits" > /tmp/git-metadata/commit-hash
|
||||
git remote get-url origin > /tmp/git-metadata/remote-url 2>/dev/null || echo "no-remote" > /tmp/git-metadata/remote-url
|
||||
|
||||
# Log the commit for development tracking
|
||||
echo "$(date): Commit $(git rev-parse --short HEAD) on branch $(git branch --show-current)" >> /tmp/git-metadata/commit-log
|
||||
|
||||
echo "✅ Git metadata updated"
|
||||
POST_COMMIT_END
|
||||
|
||||
# Make post-commit hook executable
|
||||
chmod +x .git/hooks/post-commit
|
||||
|
||||
# Create pre-push hook for quality checks
|
||||
cat > .git/hooks/pre-push << 'PRE_PUSH_END'
|
||||
#!/bin/bash
|
||||
# Pre-push hook for basic quality checks
|
||||
echo "🔍 Running pre-push quality checks..."
|
||||
|
||||
# Check if package.json exists and run tests
|
||||
if [ -f "package.json" ]; then
|
||||
echo "📦 Found Node.js project, checking scripts..."
|
||||
if npm run --silent test --if-present; then
|
||||
echo "✅ Tests passed"
|
||||
else
|
||||
echo "⚠️ Tests not found or failed - pushing anyway"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if requirements.txt or pyproject.toml exists
|
||||
if [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
|
||||
echo "🐍 Found Python project..."
|
||||
# Could add Python linting here
|
||||
echo "✅ Python project checks passed"
|
||||
fi
|
||||
|
||||
# Check for large files
|
||||
echo "📁 Checking for large files..."
|
||||
large_files=$(find . -type f -size +100M 2>/dev/null | head -5)
|
||||
if [ ! -z "$large_files" ]; then
|
||||
echo "⚠️ Large files detected:"
|
||||
echo "$large_files"
|
||||
echo "Consider using Git LFS for large files"
|
||||
fi
|
||||
|
||||
echo "✅ Pre-push checks completed"
|
||||
PRE_PUSH_END
|
||||
|
||||
# Make pre-push hook executable
|
||||
chmod +x .git/hooks/pre-push
|
||||
|
||||
# Set proper ownership for the coder user
|
||||
if id -u coder >/dev/null 2>&1; then
|
||||
chown -R coder:coder .git/hooks
|
||||
fi
|
||||
|
||||
echo "✅ Git hooks and metadata capture configured"
|
||||
echo "📝 Git metadata will be automatically captured on commits"
|
||||
echo "🔍 Pre-push quality checks will run before each push"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "🌊 Setting up Windsurf IDE support..."
|
||||
|
||||
# Create Windsurf configuration directories
|
||||
mkdir -p /home/coder/.windsurf/data/User
|
||||
mkdir -p /home/coder/.windsurf/extensions
|
||||
|
||||
# Create optimized Windsurf settings
|
||||
cat > /home/coder/.windsurf/data/User/settings.json << 'WINDSURF_SETTINGS_END'
|
||||
{
|
||||
"workbench.colorTheme": "Windsurf Dark",
|
||||
"editor.fontSize": 14,
|
||||
"editor.tabSize": 2,
|
||||
"editor.insertSpaces": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": true,
|
||||
"source.organizeImports": true
|
||||
},
|
||||
"files.autoSave": "afterDelay",
|
||||
"files.autoSaveDelay": 1000,
|
||||
"terminal.integrated.fontSize": 13,
|
||||
"git.enableSmartCommit": true,
|
||||
"git.confirmSync": false,
|
||||
"python.defaultInterpreterPath": "/home/coder/.venv/bin/python",
|
||||
"python.linting.enabled": true,
|
||||
"python.linting.pylintEnabled": false,
|
||||
"python.linting.flake8Enabled": true,
|
||||
"typescript.preferences.includePackageJsonAutoImports": "auto",
|
||||
"javascript.preferences.includePackageJsonAutoImports": "auto",
|
||||
"windsurf.ai.enabled": true,
|
||||
"windsurf.ai.showInEditorContextMenu": true,
|
||||
"windsurf.chat.enabled": true,
|
||||
"windsurf.codeCompletion.enabled": true
|
||||
}
|
||||
WINDSURF_SETTINGS_END
|
||||
|
||||
# Create development keybindings
|
||||
cat > /home/coder/.windsurf/data/User/keybindings.json << 'WINDSURF_KEYS_END'
|
||||
[
|
||||
{
|
||||
"key": "ctrl+shift+a",
|
||||
"command": "windsurf.chat.open"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+c",
|
||||
"command": "windsurf.ai.generateCode"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+r",
|
||||
"command": "windsurf.ai.refactorSelection"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+e",
|
||||
"command": "windsurf.ai.explainCode"
|
||||
}
|
||||
]
|
||||
WINDSURF_KEYS_END
|
||||
|
||||
# Set proper ownership
|
||||
if id -u coder >/dev/null 2>&1; then
|
||||
chown -R coder:coder /home/coder/.windsurf
|
||||
fi
|
||||
|
||||
echo "✅ Windsurf IDE support configured"
|
||||
echo "🌊 Windsurf AI features enabled with optimized settings"
|
||||
echo "⌨️ Keyboard shortcuts: Ctrl+Shift+A (chat), Ctrl+Shift+C (generate), Ctrl+Shift+R (refactor)"
|
||||
@@ -1,306 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Set proper locale for emoji and UTF-8 support
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
|
||||
echo "🚀 Initializing development environment as user: $(whoami)"
|
||||
|
||||
# =============================================================================
|
||||
# Create coder user if it doesn't exist
|
||||
# =============================================================================
|
||||
if ! id -u coder >/dev/null 2>&1; then
|
||||
echo "👤 Creating coder user..."
|
||||
useradd -m -s /bin/bash coder
|
||||
usermod -aG sudo coder
|
||||
echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
elif [ "$(id -u coder)" != "1000" ]; then
|
||||
echo "👤 Coder user exists but with different UID, updating..."
|
||||
usermod -u 1000 coder
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# Create necessary directories
|
||||
# =============================================================================
|
||||
echo "📁 Creating user directories..."
|
||||
mkdir -p /home/coder/bin
|
||||
mkdir -p /home/coder/.local/bin
|
||||
mkdir -p /home/coder/.config
|
||||
mkdir -p /tmp/git-metadata
|
||||
mkdir -p /workspaces
|
||||
|
||||
# Ensure proper ownership (only if coder user exists, excluding read-only bind mounts)
|
||||
if id -u coder >/dev/null 2>&1; then
|
||||
chown -R coder:coder /home/coder/.local /home/coder/.config /home/coder/bin /workspaces
|
||||
# Set ownership for coder home directory files (not subdirectories that might be bind mounted)
|
||||
find /home/coder -maxdepth 1 -type f -exec chown coder:coder {} \; 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# Switch to coder user for remaining operations
|
||||
# =============================================================================
|
||||
echo "🔄 Switching to coder user context..."
|
||||
export HOME=/home/coder
|
||||
export USER=coder
|
||||
|
||||
# =============================================================================
|
||||
# Git Configuration
|
||||
# =============================================================================
|
||||
echo "⚙️ Configuring Git..."
|
||||
git config --global user.name "${GIT_AUTHOR_NAME}"
|
||||
git config --global user.email "${GIT_AUTHOR_EMAIL}"
|
||||
git config --global commit.gpgsign false
|
||||
git config --global tag.gpgsign false
|
||||
git config --global init.defaultBranch main
|
||||
git config --global pull.rebase false
|
||||
|
||||
# Capture and log git information
|
||||
echo "📝 Capturing Git metadata..."
|
||||
cd /workspaces
|
||||
if [ -d ".git" ]; then
|
||||
git branch --show-current > /tmp/git-metadata/current-branch 2>/dev/null || echo "main" > /tmp/git-metadata/current-branch
|
||||
git rev-parse HEAD > /tmp/git-metadata/commit-hash 2>/dev/null || echo "no-commits" > /tmp/git-metadata/commit-hash
|
||||
git remote get-url origin > /tmp/git-metadata/remote-url 2>/dev/null || echo "no-remote" > /tmp/git-metadata/remote-url
|
||||
else
|
||||
echo "no-repo" > /tmp/git-metadata/current-branch
|
||||
echo "no-repo" > /tmp/git-metadata/commit-hash
|
||||
echo "no-repo" > /tmp/git-metadata/remote-url
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# System Package Updates and Installation
|
||||
# =============================================================================
|
||||
echo "📦 Installing system packages..."
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update -qq
|
||||
apt-get install -y make tree jq curl wget unzip build-essential postgresql-client redis-tools ripgrep fd-find
|
||||
|
||||
# =============================================================================
|
||||
# Node.js and npm Setup (as coder user)
|
||||
# =============================================================================
|
||||
echo "🟢 Setting up Node.js and npm..."
|
||||
|
||||
# Completely remove any existing npm caches and config files
|
||||
rm -rf /home/coder/.npm /home/coder/.npm-global /home/coder/.npmrc 2>/dev/null || true
|
||||
rm -rf /root/.npm /root/.npmrc 2>/dev/null || true
|
||||
|
||||
# Create coder user directories with proper permissions
|
||||
mkdir -p /home/coder
|
||||
chown coder:coder /home/coder
|
||||
|
||||
# DO NOT pre-create npm cache directories - let npm create them as the coder user
|
||||
mkdir -p /home/coder/.npm-global/{lib,bin}
|
||||
chown -R coder:coder /home/coder/.npm-global 2>/dev/null || true
|
||||
|
||||
# Create Node.js setup script
|
||||
cat > /tmp/node_setup.sh << 'NODE_SCRIPT_END'
|
||||
#!/bin/bash
|
||||
# Create bash profile first
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc
|
||||
|
||||
# Clean any npmrc files that might conflict with nvm
|
||||
rm -f ~/.npmrc /home/coder/.npmrc 2>/dev/null || true
|
||||
|
||||
# Verify npm directories exist and are owned by coder
|
||||
ls -la ~/.npm ~/.npm-global || echo "npm directories ready"
|
||||
|
||||
if ! command -v nvm &> /dev/null; then
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||||
fi
|
||||
|
||||
# Load nvm properly
|
||||
export NVM_DIR="/home/coder/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
|
||||
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
|
||||
nvm install ${NODE_VERSION}
|
||||
nvm use ${NODE_VERSION}
|
||||
nvm alias default ${NODE_VERSION}
|
||||
|
||||
# Clean npm config that conflicts with nvm
|
||||
npm config delete globalconfig 2>/dev/null || true
|
||||
npm config delete prefix 2>/dev/null || true
|
||||
|
||||
# Let npm create its cache directory naturally
|
||||
# Create npm-global lib directory structure
|
||||
mkdir -p ~/.npm-global/{lib,bin}
|
||||
|
||||
# Configure npm to use user-writable directories
|
||||
npm config set prefix ~/.npm-global
|
||||
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
||||
export PATH=~/.npm-global/bin:$PATH
|
||||
|
||||
# Verify npm configuration
|
||||
echo "📋 npm configuration:"
|
||||
npm config get prefix
|
||||
npm config get cache
|
||||
|
||||
echo "📦 Installing npm packages..."
|
||||
npm install -g repomix create-next-app nodemon concurrently @types/node typescript eslint prettier
|
||||
NODE_SCRIPT_END
|
||||
|
||||
chmod +x /tmp/node_setup.sh
|
||||
su - coder -c "/tmp/node_setup.sh"
|
||||
rm /tmp/node_setup.sh
|
||||
|
||||
# =============================================================================
|
||||
# Python Setup with uv (as coder user)
|
||||
# =============================================================================
|
||||
echo "🐍 Setting up Python and uv..."
|
||||
|
||||
# Install Python version (add deadsnakes PPA for newer Python versions)
|
||||
if [[ "${PYTHON_VERSION}" > "3.10" ]]; then
|
||||
echo "📦 Adding deadsnakes PPA for Python ${PYTHON_VERSION}..."
|
||||
apt-get install -y software-properties-common
|
||||
add-apt-repository ppa:deadsnakes/ppa -y
|
||||
apt-get update
|
||||
fi
|
||||
|
||||
apt-get install -y python${PYTHON_VERSION} python${PYTHON_VERSION}-dev python${PYTHON_VERSION}-venv || {
|
||||
echo "⚠️ Python ${PYTHON_VERSION} not available, falling back to default Python 3"
|
||||
apt-get install -y python3 python3-dev python3-venv
|
||||
export PYTHON_VERSION="3"
|
||||
}
|
||||
|
||||
# Create Python setup script
|
||||
cat > /tmp/python_setup.sh << 'PYTHON_SCRIPT_END'
|
||||
#!/bin/bash
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
export PATH="/home/coder/.cargo/bin:$PATH"
|
||||
|
||||
echo "📦 Installing Python packages with uv..."
|
||||
for package in fastapi uvicorn requests pandas numpy psycopg2-binary redis qdrant-client python-dotenv; do
|
||||
uv tool install $package || echo "Failed to install $package"
|
||||
done
|
||||
|
||||
uv venv /home/coder/.venv --python=${PYTHON_VERSION}
|
||||
echo 'source /home/coder/.venv/bin/activate' >> /home/coder/.bashrc
|
||||
PYTHON_SCRIPT_END
|
||||
|
||||
chmod +x /tmp/python_setup.sh
|
||||
su - coder -c "/tmp/python_setup.sh"
|
||||
rm /tmp/python_setup.sh
|
||||
|
||||
# =============================================================================
|
||||
# Rust and Cargo Setup (as coder user)
|
||||
# =============================================================================
|
||||
echo "🦀 Installing Rust and Cargo..."
|
||||
|
||||
# Create Rust setup script
|
||||
cat > /tmp/rust_setup.sh << 'RUST_SCRIPT_END'
|
||||
#!/bin/bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
||||
source "/home/coder/.cargo/env"
|
||||
echo 'export PATH="/home/coder/.cargo/bin:$PATH"' >> /home/coder/.bashrc
|
||||
cargo install cargo-watch cargo-edit cargo-audit
|
||||
RUST_SCRIPT_END
|
||||
|
||||
chmod +x /tmp/rust_setup.sh
|
||||
su - coder -c "/tmp/rust_setup.sh"
|
||||
rm /tmp/rust_setup.sh
|
||||
|
||||
# =============================================================================
|
||||
# repomix Installation (as coder user)
|
||||
# =============================================================================
|
||||
echo "📁 Installing repomix..."
|
||||
su - coder -c "npm install -g repomix"
|
||||
|
||||
# =============================================================================
|
||||
# Shell Configuration (as coder user)
|
||||
# =============================================================================
|
||||
echo "🐚 Setting up shell environment..."
|
||||
|
||||
# Create devinfo script
|
||||
cat > /tmp/devinfo_script.sh << 'DEVINFO_SCRIPT_END'
|
||||
#!/bin/bash
|
||||
mkdir -p /home/coder/bin
|
||||
cat > /home/coder/bin/devinfo << 'DEVINFO_END'
|
||||
#!/bin/bash
|
||||
echo '🚀 Development Environment Info'
|
||||
echo '==============================='
|
||||
echo ''
|
||||
echo '🔧 Installed Tools:'
|
||||
echo ' Node.js: '$(node --version 2>/dev/null || echo 'Not found')
|
||||
echo ' npm: '$(npm --version 2>/dev/null || echo 'Not found')
|
||||
echo ' Python: '$(python${PYTHON_VERSION} --version 2>/dev/null || echo 'Not found')
|
||||
echo ' uv: '$(uv --version 2>/dev/null || echo 'Not found')
|
||||
echo ' Rust: '$(rustc --version 2>/dev/null || echo 'Not found')
|
||||
echo ' Cargo: '$(cargo --version 2>/dev/null || echo 'Not found')
|
||||
echo ' repomix: '$(repomix --version 2>/dev/null || echo 'Not found')
|
||||
echo ''
|
||||
echo '🗄️ Database Services:'
|
||||
if [ "${ENABLE_SERVICES}" = "true" ]; then
|
||||
echo ' PostgreSQL: '${POSTGRES_URL}
|
||||
echo ' Redis: '${REDIS_URL}
|
||||
echo ' Qdrant: '${QDRANT_URL}
|
||||
else
|
||||
echo ' Services disabled'
|
||||
fi
|
||||
echo ''
|
||||
echo '📝 Git Metadata:'
|
||||
if [ -f /tmp/git-metadata/current-branch ]; then
|
||||
echo ' Branch: '$(cat /tmp/git-metadata/current-branch)
|
||||
echo ' Commit: '$(cat /tmp/git-metadata/commit-hash)
|
||||
echo ' Remote: '$(cat /tmp/git-metadata/remote-url)
|
||||
fi
|
||||
DEVINFO_END
|
||||
chmod +x /home/coder/bin/devinfo
|
||||
DEVINFO_SCRIPT_END
|
||||
|
||||
chmod +x /tmp/devinfo_script.sh
|
||||
su - coder -c "/tmp/devinfo_script.sh"
|
||||
rm /tmp/devinfo_script.sh
|
||||
|
||||
# Create bashrc aliases script
|
||||
cat > /tmp/bashrc_setup.sh << 'BASHRC_SCRIPT_END'
|
||||
#!/bin/bash
|
||||
cat >> /home/coder/.bashrc << 'BASHRC_END'
|
||||
|
||||
# Development Environment Aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
alias gs='git status'
|
||||
alias gp='git push'
|
||||
alias gc='git commit'
|
||||
alias gco='git checkout'
|
||||
alias gb='git branch'
|
||||
|
||||
# Development workflow shortcuts
|
||||
alias devinfo='/home/coder/bin/devinfo'
|
||||
|
||||
# Package managers
|
||||
alias pip='uv pip'
|
||||
alias python='python${PYTHON_VERSION}'
|
||||
|
||||
# Docker shortcuts
|
||||
alias dps='docker ps'
|
||||
alias dimg='docker images'
|
||||
alias dlog='docker logs'
|
||||
|
||||
BASHRC_END
|
||||
BASHRC_SCRIPT_END
|
||||
|
||||
chmod +x /tmp/bashrc_setup.sh
|
||||
su - coder -c "/tmp/bashrc_setup.sh"
|
||||
rm /tmp/bashrc_setup.sh
|
||||
|
||||
# =============================================================================
|
||||
# Final Environment Setup
|
||||
# =============================================================================
|
||||
echo "✅ Development environment initialization complete!"
|
||||
echo ""
|
||||
echo "🎉 Available tools:"
|
||||
echo " - Node.js ${NODE_VERSION} with npm packages"
|
||||
echo " - Python ${PYTHON_VERSION} with uv package manager"
|
||||
echo " - Rust with Cargo"
|
||||
echo " - repomix for repository packaging"
|
||||
echo " - make, tree, and other build tools"
|
||||
if [ "${ENABLE_SERVICES}" = "true" ]; then
|
||||
echo " - PostgreSQL, Redis, Qdrant databases"
|
||||
fi
|
||||
echo ""
|
||||
echo "🔧 Run 'devinfo' for detailed environment information"
|
||||
echo "🚀 Ready for development!"
|
||||
BIN
tf/terraform
BIN
tf/terraform
Binary file not shown.
2321
tf/terraform.tfstate
2321
tf/terraform.tfstate
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
tf/terraform.zip
BIN
tf/terraform.zip
Binary file not shown.
Reference in New Issue
Block a user